/**
 * Copyright 2019-2020 Huawei Technologies Co., Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <gtest/gtest.h>

#include "common/formats/format_transfers/format_transfer_fracz_nhwc.h"

#include "common/formats/format_transfers/format_transfer.h"
#include "common/fp16_t.h"

namespace ge {
namespace formats {
class UtestFormatTransferFraczNhwc : public testing::Test {
 protected:
  void SetUp() {}
  void TearDown() {}
};

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_data_type) {
  uint8_t data[16 * 1 * 32 * 16] = {1};

  TransArgs args{data, FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, 1, 32, 16}, {1, 4, 4, 1}, DT_UNDEFINED};
  TransResult result;

  FormatTransferFracZNhwc transfer;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_src_format_reserved) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_RESERVED, FORMAT_NHWC, {16, 1, 16, 16}, {1, 4, 4, 1}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_dst_format_reserved) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_RESERVED, {16, 1, 16, 16}, {1, 4, 4, 1}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_src_shape) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, 1, 16}, {1, 4, 4, 1}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_src_shape2) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, -1, 16, 16}, {1, 4, 4, 1}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_dst_shape) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, 1, 16, 16}, {1, 4, 4}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_dst_shape2) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, 1, 16, 16}, {1, 4, 4, -1}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_src_dst_shape_relation1) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, 1, 16, 16}, {17, 4, 4, 1}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_invalid_src_dst_shape_relation2) {
  float data[16 * 1 * 16 * 16] = {1};

  FormatTransferFracZNhwc transfer;
  TransArgs args{
      reinterpret_cast<uint8_t *>(data), FORMAT_FRACTAL_Z, FORMAT_NHWC, {16, 1, 16, 16}, {1, 4, 4, 17}, DT_FLOAT};

  TransResult result;
  EXPECT_EQ(transfer.TransFormat(args, result), PARAM_INVALID);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_fp16_success_lt_cube) {
  uint16_t data_4d[1 * 1 * 16 * 16] = {
      15108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0,     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0,     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0,     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0,     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0,     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0,     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  };
  uint16_t data[1 * 1 * 1 * 1] = {
      15108,
  };

  TransArgs args{
      reinterpret_cast<uint8_t *>(data_4d), FORMAT_FRACTAL_Z, FORMAT_NHWC, {1, 1, 16, 16}, {1, 1, 1, 1}, DT_FLOAT16};
  TransResult result;

  FormatTransferFracZNhwc transfer;
  EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS);
  EXPECT_EQ(result.length, sizeof(data));
  for (int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
    EXPECT_EQ((reinterpret_cast<uint16_t *>(result.data.get()))[i], data[i]);
  }
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_fp16_success_eq_cube) {
  uint16_t data_4d[4 * 1 * 16 * 16] = {
      14422, 14250, 15207, 11368, 13196, 12957, 15106, 15099, 15047, 13771, 13891, 14758, 13298, 13411, 15283, 15351,
      13386, 13586, 12661, 14761, 15025, 10628, 12072, 14528, 14866, 13804, 15034, 14930, 14536, 13776, 11278, 10879,
      12538, 13720, 14793, 8244,  14509, 15201, 14563, 12649, 15320, 14814, 14229, 13811, 13734, 13795, 13354, 12915,
      13498, 14218, 14748, 9860,  13268, 11456, 14650, 14749, 14957, 13538, 14260, 15152, 14451, 14932, 12831, 14326,
      13007, 14492, 14752, 15121, 14798, 14508, 14502, 14809, 13826, 15346, 14598, 13712, 14560, 14605, 14954, 14740,
      13011, 13442, 14945, 13182, 15009, 8704,  12211, 14842, 15205, 12795, 10772, 13892, 12902, 14761, 14601, 12663,
      13702, 14580, 15322, 14745, 14750, 14264, 14433, 13854, 14778, 15011, 14745, 14599, 13430, 9216,  14570, 14514,
      15336, 9439,  15021, 15107, 14006, 12950, 13622, 14707, 14981, 14850, 13337, 13280, 15124, 10206, 13412, 13832,
      15303, 14455, 15079, 12787, 14613, 14302, 15036, 13536, 15243, 13739, 15259, 15099, 13211, 14770, 15097, 14402,
      15204, 14955, 14621, 12097, 15083, 14119, 14814, 4005,  10998, 14856, 13380, 14647, 14540, 14008, 11346, 14363,
      14313, 15108, 6776,  15180, 14647, 13917, 14629, 13412, 13480, 10439, 14776, 14563, 15328, 14777, 14436, 14902,
      15255, 14241, 13324, 15082, 14738, 15265, 14657, 13571, 15280, 15082, 9338,  12341, 14991, 14847, 14948, 14037,
      13624, 14947, 14968, 12058, 14060, 13434, 14349, 14972, 12716, 14287, 12350, 12619, 15263, 13831, 15160, 15032,
      14591, 12370, 13537, 11343, 13909, 12663, 15078, 14938, 14409, 13852, 12414, 13903, 13825, 13958, 10736, 11772,
      13429, 13236, 15033, 13910, 15008, 14564, 14344, 14546, 15227, 14491, 14858, 14957, 12725, 13536, 13030, 12562,
      15163, 13294, 15229, 15146, 11977, 14509, 15259, 12425, 15334, 13340, 15329, 15071, 14342, 14555, 14473, 15054,
      14551, 14307, 14721, 14255, 13352, 15201, 15191, 13045, 12146, 13419, 14884, 13352, 14843, 14356, 10607, 15253,
      12948, 13749, 13930, 14144, 9963,  15200, 14364, 14952, 14652, 15188, 14500, 14558, 15289, 14978, 10959, 14101,
      15131, 14699, 15179, 14896, 14614, 13448, 14463, 12326, 13099, 13035, 12361, 13939, 15216, 15031, 15104, 15122,
      14754, 14837, 14295, 12738, 13007, 13385, 13712, 13448, 14487, 13904, 14940, 12247, 15013, 13784, 15169, 11543,
      15351, 14657, 15047, 14243, 14234, 14986, 15288, 9009,  14717, 13685, 13416, 12043, 14874, 14362, 12565, 15139,
      15351, 11442, 14669, 12929, 15084, 12574, 12783, 14385, 10838, 14537, 14440, 14713, 15140, 14316, 14694, 11250,
      14399, 14942, 14509, 11151, 15125, 13241, 14844, 5053,  13906, 14498, 10895, 15031, 15220, 15172, 15160, 13782,
      7336,  13280, 15245, 15190, 12154, 13669, 14612, 14388, 9114,  14866, 15180, 12447, 14803, 13802, 13786, 14692,
      13145, 13633, 10303, 14120, 14322, 9452,  13412, 14852, 15342, 12512, 12724, 14482, 14708, 13886, 14371, 13771,
      13399, 14432, 13585, 15028, 14173, 14347, 15077, 13051, 12138, 14267, 11114, 13958, 14961, 13844, 15272, 14643,
      12614, 13212, 13324, 15077, 14349, 14662, 14273, 10859, 5552,  10874, 13863, 14104, 13495, 14904, 11517, 15108,
      14999, 13078, 15106, 14639, 13345, 6413,  13979, 15205, 14332, 12647, 13386, 15312, 10976, 15089, 14089, 14370,
      8462,  13359, 14322, 14221, 14371, 14449, 13536, 12118, 14288, 13483, 12182, 13621, 15261, 14723, 12623, 13323,
      14817, 14529, 13499, 14350, 11063, 14315, 12718, 14574, 14180, 12505, 13109, 11207, 14801, 13781, 14392, 13549,
      14481, 13731, 15236, 9398,  15358, 12351, 14751, 14509, 11815, 14787, 9669,  14645, 15099, 14490, 13121, 15050,
      15076, 14756, 14958, 4978,  14576, 11508, 14746, 13161, 14408, 10590, 13429, 14945, 13993, 15033, 13183, 13027,
      13040, 15055, 14563, 15154, 14639, 15242, 14828, 12673, 12310, 15149, 12333, 11282, 14004, 15172, 11527, 15094,
      14725, 14941, 14435, 12561, 13832, 13489, 13186, 11553, 14927, 14861, 11684, 14518, 14331, 10694, 12473, 14447,
      14008, 15061, 14954, 15103, 14619, 13134, 14321, 14898, 10583, 15066, 15013, 14557, 14566, 14025, 13341, 14381,
      13587, 11771, 12011, 15320, 13462, 14503, 14944, 12535, 11976, 12949, 11427, 12383, 14405, 13595, 15002, 14362,
      13336, 13825, 11229, 13185, 14932, 13706, 14583, 15300, 15332, 14997, 11169, 15248, 14661, 9558,  13210, 13015,
      15314, 14332, 14428, 15128, 12862, 15058, 14929, 14899, 8721,  14699, 14163, 14774, 14835, 14416, 14252, 12609,
      11329, 13053, 11842, 15323, 12010, 13224, 12629, 15297, 12422, 11133, 9125,  11724, 14585, 14376, 14733, 14556,
      11591, 12995, 14556, 14822, 14914, 15332, 13424, 14846, 13522, 14947, 9886,  15179, 11710, 14524, 12604, 13600,
      14898, 14863, 14901, 9668,  13991, 15090, 14553, 9288,  13662, 12807, 13881, 15143, 14591, 10092, 15358, 9907,
      15349, 14811, 14578, 14389, 15154, 13072, 13805, 13115, 14879, 14902, 14466, 14540, 9926,  14475, 13389, 14468,
      14489, 14673, 14794, 13494, 15219, 15314, 14266, 12104, 14068, 12709, 13135, 15088, 15118, 14229, 15145, 13771,
      14614, 14426, 14336, 14375, 15264, 13925, 13501, 14613, 14973, 13381, 15025, 14770, 11856, 15035, 13759, 14437,
      14171, 15349, 14474, 14662, 13505, 15329, 15210, 15353, 13535, 12864, 14658, 14968, 9562,  13352, 12356, 13565,
      14481, 15092, 12920, 15290, 14046, 10403, 14299, 13885, 9128,  13798, 14575, 14484, 14728, 14471, 14678, 15356,
      13955, 14939, 15149, 14775, 15303, 14614, 14530, 13890, 14051, 14869, 15253, 12810, 12328, 14590, 13489, 13653,
      14448, 15013, 11047, 13979, 12332, 14777, 14414, 15286, 12226, 14359, 13505, 13476, 13932, 14273, 14620, 14246,
      14987, 13774, 14562, 12418, 15303, 13383, 15006, 11992, 13652, 14342, 15025, 13315, 13500, 12981, 13108, 14252,
      14185, 14384, 14865, 12340, 13978, 14106, 12372, 14367, 10200, 15157, 13088, 14517, 15146, 14143, 14497, 13560,
      12995, 13539, 14724, 14606, 13340, 13378, 13432, 15143, 13249, 13229, 13168, 13910, 14061, 14456, 14896, 12972,
      13595, 13416, 13143, 9473,  14306, 13768, 15134, 13998, 10894, 15136, 12425, 13283, 11400, 13338, 12118, 12982,
      11692, 15215, 14555, 10674, 14734, 12815, 13038, 14365, 7730,  14605, 12123, 14907, 12370, 14712, 14057, 11671,
      14851, 14573, 14218, 11442, 14831, 14930, 13150, 12025, 15170, 7647,  14724, 14542, 14814, 14375, 14807, 13142,
      10157, 14206, 14185, 15359, 15121, 15264, 15117, 12578, 12061, 14273, 15339, 15092, 12803, 13734, 12847, 13867,
      11298, 13600, 13421, 14637, 11295, 15278, 13706, 14380, 11848, 14498, 15301, 15005, 14836, 14136, 14218, 14496,
      12261, 15284, 12586, 12621, 15127, 12804, 13534, 14163, 12599, 12975, 14403, 14132, 13920, 14636, 14395, 14503,
      11160, 15052, 14894, 13730, 13449, 14626, 13776, 13444, 12879, 13214, 13681, 14877, 14295, 14621, 13375, 8695,
      14774, 14179, 14221, 15341, 12290, 14558, 12476, 11462, 13847, 14278, 14174, 14092, 15192, 15254, 15205, 14700,
      14907, 10047, 12606, 12503, 14393, 14854, 14327, 15155, 13000, 10717, 15247, 13657, 13965, 15243, 14989, 13768,
      15198, 11511, 13788, 12911, 13993, 13693, 12862, 14613, 15056, 15244, 14444, 15174, 15312, 15133, 14859, 14225,
      14558, 14003, 10672, 14388, 14487, 15001, 15022, 14634, 13742, 12429, 13937, 15102, 12090, 15326, 13650, 13590,
      13648, 10701, 14528, 15178, 14926, 14584, 13916, 13144, 10598, 15269, 14247, 12646, 15283, 14202, 14649, 14873,
      15252, 14565, 14099, 14651, 15105, 12658, 14767, 12639, 13930, 13290, 14558, 13149, 10365, 13507, 14337, 14605,
  };
  uint16_t data[16 * 2 * 2 * 16] = {
      14422, 14250, 15207, 11368, 13196, 12957, 15106, 15099, 15047, 13771, 13891, 14758, 13298, 13411, 15283, 15351,
      14551, 14307, 14721, 14255, 13352, 15201, 15191, 13045, 12146, 13419, 14884, 13352, 14843, 14356, 10607, 15253,
      13040, 15055, 14563, 15154, 14639, 15242, 14828, 12673, 12310, 15149, 12333, 11282, 14004, 15172, 11527, 15094,
      14987, 13774, 14562, 12418, 15303, 13383, 15006, 11992, 13652, 14342, 15025, 13315, 13500, 12981, 13108, 14252,
      13386, 13586, 12661, 14761, 15025, 10628, 12072, 14528, 14866, 13804, 15034, 14930, 14536, 13776, 11278, 10879,
      12948, 13749, 13930, 14144, 9963,  15200, 14364, 14952, 14652, 15188, 14500, 14558, 15289, 14978, 10959, 14101,
      14725, 14941, 14435, 12561, 13832, 13489, 13186, 11553, 14927, 14861, 11684, 14518, 14331, 10694, 12473, 14447,
      14185, 14384, 14865, 12340, 13978, 14106, 12372, 14367, 10200, 15157, 13088, 14517, 15146, 14143, 14497, 13560,
      12538, 13720, 14793, 8244,  14509, 15201, 14563, 12649, 15320, 14814, 14229, 13811, 13734, 13795, 13354, 12915,
      15131, 14699, 15179, 14896, 14614, 13448, 14463, 12326, 13099, 13035, 12361, 13939, 15216, 15031, 15104, 15122,
      14008, 15061, 14954, 15103, 14619, 13134, 14321, 14898, 10583, 15066, 15013, 14557, 14566, 14025, 13341, 14381,
      12995, 13539, 14724, 14606, 13340, 13378, 13432, 15143, 13249, 13229, 13168, 13910, 14061, 14456, 14896, 12972,
      13498, 14218, 14748, 9860,  13268, 11456, 14650, 14749, 14957, 13538, 14260, 15152, 14451, 14932, 12831, 14326,
      14754, 14837, 14295, 12738, 13007, 13385, 13712, 13448, 14487, 13904, 14940, 12247, 15013, 13784, 15169, 11543,
      13587, 11771, 12011, 15320, 13462, 14503, 14944, 12535, 11976, 12949, 11427, 12383, 14405, 13595, 15002, 14362,
      13595, 13416, 13143, 9473,  14306, 13768, 15134, 13998, 10894, 15136, 12425, 13283, 11400, 13338, 12118, 12982,
      13007, 14492, 14752, 15121, 14798, 14508, 14502, 14809, 13826, 15346, 14598, 13712, 14560, 14605, 14954, 14740,
      15351, 14657, 15047, 14243, 14234, 14986, 15288, 9009,  14717, 13685, 13416, 12043, 14874, 14362, 12565, 15139,
      13336, 13825, 11229, 13185, 14932, 13706, 14583, 15300, 15332, 14997, 11169, 15248, 14661, 9558,  13210, 13015,
      11692, 15215, 14555, 10674, 14734, 12815, 13038, 14365, 7730,  14605, 12123, 14907, 12370, 14712, 14057, 11671,
      13011, 13442, 14945, 13182, 15009, 8704,  12211, 14842, 15205, 12795, 10772, 13892, 12902, 14761, 14601, 12663,
      15351, 11442, 14669, 12929, 15084, 12574, 12783, 14385, 10838, 14537, 14440, 14713, 15140, 14316, 14694, 11250,
      15314, 14332, 14428, 15128, 12862, 15058, 14929, 14899, 8721,  14699, 14163, 14774, 14835, 14416, 14252, 12609,
      14851, 14573, 14218, 11442, 14831, 14930, 13150, 12025, 15170, 7647,  14724, 14542, 14814, 14375, 14807, 13142,
      13702, 14580, 15322, 14745, 14750, 14264, 14433, 13854, 14778, 15011, 14745, 14599, 13430, 9216,  14570, 14514,
      14399, 14942, 14509, 11151, 15125, 13241, 14844, 5053,  13906, 14498, 10895, 15031, 15220, 15172, 15160, 13782,
      11329, 13053, 11842, 15323, 12010, 13224, 12629, 15297, 12422, 11133, 9125,  11724, 14585, 14376, 14733, 14556,
      10157, 14206, 14185, 15359, 15121, 15264, 15117, 12578, 12061, 14273, 15339, 15092, 12803, 13734, 12847, 13867,
      15336, 9439,  15021, 15107, 14006, 12950, 13622, 14707, 14981, 14850, 13337, 13280, 15124, 10206, 13412, 13832,
      7336,  13280, 15245, 15190, 12154, 13669, 14612, 14388, 9114,  14866, 15180, 12447, 14803, 13802, 13786, 14692,
      11591, 12995, 14556, 14822, 14914, 15332, 13424, 14846, 13522, 14947, 9886,  15179, 11710, 14524, 12604, 13600,
      11298, 13600, 13421, 14637, 11295, 15278, 13706, 14380, 11848, 14498, 15301, 15005, 14836, 14136, 14218, 14496,
      15303, 14455, 15079, 12787, 14613, 14302, 15036, 13536, 15243, 13739, 15259, 15099, 13211, 14770, 15097, 14402,
      13145, 13633, 10303, 14120, 14322, 9452,  13412, 14852, 15342, 12512, 12724, 14482, 14708, 13886, 14371, 13771,
      14898, 14863, 14901, 9668,  13991, 15090, 14553, 9288,  13662, 12807, 13881, 15143, 14591, 10092, 15358, 9907,
      12261, 15284, 12586, 12621, 15127, 12804, 13534, 14163, 12599, 12975, 14403, 14132, 13920, 14636, 14395, 14503,
      15204, 14955, 14621, 12097, 15083, 14119, 14814, 4005,  10998, 14856, 13380, 14647, 14540, 14008, 11346, 14363,
      13399, 14432, 13585, 15028, 14173, 14347, 15077, 13051, 12138, 14267, 11114, 13958, 14961, 13844, 15272, 14643,
      15349, 14811, 14578, 14389, 15154, 13072, 13805, 13115, 14879, 14902, 14466, 14540, 9926,  14475, 13389, 14468,
      11160, 15052, 14894, 13730, 13449, 14626, 13776, 13444, 12879, 13214, 13681, 14877, 14295, 14621, 13375, 8695,
      14313, 15108, 6776,  15180, 14647, 13917, 14629, 13412, 13480, 10439, 14776, 14563, 15328, 14777, 14436, 14902,
      12614, 13212, 13324, 15077, 14349, 14662, 14273, 10859, 5552,  10874, 13863, 14104, 13495, 14904, 11517, 15108,
      14489, 14673, 14794, 13494, 15219, 15314, 14266, 12104, 14068, 12709, 13135, 15088, 15118, 14229, 15145, 13771,
      14774, 14179, 14221, 15341, 12290, 14558, 12476, 11462, 13847, 14278, 14174, 14092, 15192, 15254, 15205, 14700,
      15255, 14241, 13324, 15082, 14738, 15265, 14657, 13571, 15280, 15082, 9338,  12341, 14991, 14847, 14948, 14037,
      14999, 13078, 15106, 14639, 13345, 6413,  13979, 15205, 14332, 12647, 13386, 15312, 10976, 15089, 14089, 14370,
      14614, 14426, 14336, 14375, 15264, 13925, 13501, 14613, 14973, 13381, 15025, 14770, 11856, 15035, 13759, 14437,
      14907, 10047, 12606, 12503, 14393, 14854, 14327, 15155, 13000, 10717, 15247, 13657, 13965, 15243, 14989, 13768,
      13624, 14947, 14968, 12058, 14060, 13434, 14349, 14972, 12716, 14287, 12350, 12619, 15263, 13831, 15160, 15032,
      8462,  13359, 14322, 14221, 14371, 14449, 13536, 12118, 14288, 13483, 12182, 13621, 15261, 14723, 12623, 13323,
      14171, 15349, 14474, 14662, 13505, 15329, 15210, 15353, 13535, 12864, 14658, 14968, 9562,  13352, 12356, 13565,
      15198, 11511, 13788, 12911, 13993, 13693, 12862, 14613, 15056, 15244, 14444, 15174, 15312, 15133, 14859, 14225,
      14591, 12370, 13537, 11343, 13909, 12663, 15078, 14938, 14409, 13852, 12414, 13903, 13825, 13958, 10736, 11772,
      14817, 14529, 13499, 14350, 11063, 14315, 12718, 14574, 14180, 12505, 13109, 11207, 14801, 13781, 14392, 13549,
      14481, 15092, 12920, 15290, 14046, 10403, 14299, 13885, 9128,  13798, 14575, 14484, 14728, 14471, 14678, 15356,
      14558, 14003, 10672, 14388, 14487, 15001, 15022, 14634, 13742, 12429, 13937, 15102, 12090, 15326, 13650, 13590,
      13429, 13236, 15033, 13910, 15008, 14564, 14344, 14546, 15227, 14491, 14858, 14957, 12725, 13536, 13030, 12562,
      14481, 13731, 15236, 9398,  15358, 12351, 14751, 14509, 11815, 14787, 9669,  14645, 15099, 14490, 13121, 15050,
      13955, 14939, 15149, 14775, 15303, 14614, 14530, 13890, 14051, 14869, 15253, 12810, 12328, 14590, 13489, 13653,
      13648, 10701, 14528, 15178, 14926, 14584, 13916, 13144, 10598, 15269, 14247, 12646, 15283, 14202, 14649, 14873,
      15163, 13294, 15229, 15146, 11977, 14509, 15259, 12425, 15334, 13340, 15329, 15071, 14342, 14555, 14473, 15054,
      15076, 14756, 14958, 4978,  14576, 11508, 14746, 13161, 14408, 10590, 13429, 14945, 13993, 15033, 13183, 13027,
      14448, 15013, 11047, 13979, 12332, 14777, 14414, 15286, 12226, 14359, 13505, 13476, 13932, 14273, 14620, 14246,
      15252, 14565, 14099, 14651, 15105, 12658, 14767, 12639, 13930, 13290, 14558, 13149, 10365, 13507, 14337, 14605,
  };

  TransArgs args{
      reinterpret_cast<uint8_t *>(data_4d), FORMAT_FRACTAL_Z, FORMAT_NHWC, {4, 1, 16, 16}, {16, 2, 2, 16}, DT_FLOAT16};
  TransResult result;

  FormatTransferFracZNhwc transfer;
  EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS);
  EXPECT_EQ(result.length, sizeof(data));
  for (int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
    EXPECT_EQ((reinterpret_cast<uint16_t *>(result.data.get()))[i], data[i]);
  }
  Status status =
      transfer.TransShape(args.src_format, args.src_shape, args.src_data_type, args.dst_format, args.dst_shape);
  EXPECT_EQ(status, UNSUPPORTED);
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_fp16_success_gt_cube) {
  uint16_t data_4d[8 * 2 * 16 * 16] = {
      14643, 15084, 14775, 14950, 14594, 14803, 12177, 13120, 15030, 12525, 12640, 14817, 15252, 14692, 15054, 14655,
      13395, 13556, 14508, 12414, 14272, 14148, 15056, 14734, 12544, 14138, 14641, 14793, 8925,  14903, 14744, 15219,
      14346, 12140, 12310, 14303, 12541, 14031, 11419, 14800, 11586, 14817, 14949, 13869, 9911,  14768, 14748, 11469,
      8984,  13553, 15077, 11291, 14419, 14259, 12234, 15036, 14970, 14166, 13225, 15283, 11555, 10732, 14294, 13613,
      13563, 14758, 12310, 13452, 15248, 7913,  14820, 15188, 13607, 15097, 12595, 15041, 13419, 14927, 11680, 13391,
      14730, 15210, 14573, 14986, 14480, 14810, 14421, 14868, 10163, 14768, 10289, 11549, 15206, 13973, 13249, 14465,
      14496, 11267, 13298, 14689, 9725,  13593, 14101, 9950,  14135, 15068, 14225, 12521, 13628, 11982, 13805, 13082,
      15123, 14687, 8903,  14758, 15064, 14312, 14878, 13979, 14309, 13373, 14744, 14816, 15310, 8674,  9634,  12371,
      13822, 13824, 14557, 10587, 14401, 15024, 14156, 14041, 13187, 14616, 15076, 13747, 13466, 13658, 15143, 13651,
      14175, 13921, 14447, 14076, 13601, 15003, 15049, 15102, 13701, 13614, 14557, 14391, 14514, 13575, 15138, 15103,
      15112, 14971, 14817, 14402, 14761, 9003,  14242, 14980, 14496, 14497, 14609, 13874, 8555,  13947, 12563, 10897,
      14602, 14543, 14369, 14684, 15008, 14482, 14680, 14910, 14616, 13475, 15173, 14966, 14472, 14434, 13850, 14037,
      14811, 14348, 15039, 14880, 10391, 12333, 15321, 14740, 15207, 14610, 14648, 12813, 6567,  14928, 14413, 14744,
      11330, 14223, 14667, 13822, 13416, 15092, 15163, 13721, 14985, 9430,  12456, 14628, 15093, 15078, 15046, 15078,
      14990, 14651, 14006, 13975, 15298, 14288, 14979, 13086, 14670, 13331, 12948, 14906, 15132, 15037, 14229, 14915,
      13694, 14670, 13931, 9961,  15073, 12960, 14769, 14151, 14950, 14695, 12619, 14347, 14390, 11545, 14696, 13679,
      15111, 12417, 14618, 12814, 13727, 14465, 14517, 14346, 14509, 13867, 15316, 13620, 13718, 13418, 13772, 12245,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14386, 13893, 14559, 12220, 11761, 14936, 13865, 14796, 14800, 14307, 14951, 15107, 14857, 14806, 15154, 9412,
      15010, 14921, 13512, 13793, 15309, 13425, 9729,  14167, 13513, 14683, 13483, 14709, 13920, 15026, 11308, 12400,
      15305, 14339, 15090, 15119, 12392, 15007, 15177, 14208, 15306, 13599, 13798, 14864, 11722, 13015, 14789, 14611,
      14106, 12803, 15151, 15303, 14577, 13538, 14339, 13154, 14084, 14672, 14793, 12240, 15070, 15005, 12175, 12888,
      12691, 15117, 13446, 14515, 13913, 15123, 15252, 15002, 11511, 14787, 14912, 14650, 12035, 14548, 14950, 14458,
      14888, 14514, 12791, 12573, 14604, 14992, 13541, 13780, 14397, 7631,  14614, 14986, 11108, 9225,  13665, 11943,
      12347, 13665, 13279, 14423, 12845, 13661, 15214, 15317, 14435, 12791, 13900, 15242, 15298, 13969, 14826, 12584,
      13064, 14236, 15186, 14340, 14893, 10331, 15251, 13083, 13584, 14344, 12569, 15036, 14204, 14777, 13837, 9226,
      14390, 14256, 9829,  14674, 14495, 11709, 13436, 10770, 11661, 12662, 14120, 13109, 14908, 14266, 15293, 13191,
      15269, 12610, 11706, 15330, 15108, 13080, 13123, 15201, 13707, 10054, 15187, 14830, 9929,  14661, 13177, 14356,
      12342, 14773, 13089, 12318, 13166, 14760, 13345, 14645, 14567, 15115, 13404, 14136, 14565, 13476, 13556, 14580,
      13406, 15357, 14433, 15156, 14827, 13972, 14672, 13399, 12478, 14720, 13335, 14073, 14411, 14526, 12450, 14861,
      14134, 9725,  12565, 14915, 14003, 11550, 14061, 14535, 13853, 12453, 14490, 15016, 15297, 14140, 14761, 14240,
      13114, 14017, 15109, 14027, 14750, 15099, 14659, 15315, 15280, 13607, 15302, 12982, 14741, 13700, 14019, 14737,
      15142, 14341, 15349, 15248, 14658, 14385, 15234, 13992, 12674, 14441, 14450, 13356, 14453, 11286, 14279, 13864,
      13637, 13656, 14231, 15128, 13956, 13701, 14356, 13255, 14956, 14416, 14589, 10372, 13312, 13646, 12487, 14193,
      14248, 12300, 14051, 14149, 12979, 14556, 12855, 13393, 12614, 13063, 14960, 14242, 15221, 14739, 15318, 12088,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14043, 14715, 4461,  12136, 11320, 12141, 13421, 14144, 14654, 14438, 12365, 14905, 14475, 11313, 14675, 14024,
      15086, 14135, 14081, 12712, 13637, 14202, 15194, 10907, 14310, 13866, 12043, 14719, 12523, 12397, 11980, 14952,
      14791, 14589, 14889, 13021, 12165, 14606, 14915, 14481, 7432,  11318, 12487, 14494, 13898, 12595, 15251, 13996,
      15238, 14606, 13433, 13580, 14933, 15357, 14675, 15004, 15062, 13963, 14702, 15011, 12695, 13389, 12565, 6232,
      14874, 14986, 13113, 12631, 14683, 12689, 13168, 14350, 12712, 14651, 12576, 14268, 14113, 13122, 12348, 14734,
      13589, 11061, 14828, 15344, 15174, 14972, 11092, 13911, 15065, 13101, 9859,  14503, 15312, 15270, 13689, 9178,
      14120, 14380, 13990, 13286, 13716, 15054, 14484, 14296, 14432, 14359, 12895, 14532, 13144, 13461, 14701, 14595,
      10068, 14653, 15162, 13017, 12396, 12356, 13637, 14958, 15264, 13340, 14541, 11381, 13584, 13979, 12390, 13560,
      14273, 12290, 14310, 14260, 14359, 11935, 14459, 15121, 11360, 10629, 15080, 10805, 14465, 15294, 11377, 13617,
      13625, 14975, 13361, 15188, 11507, 13782, 13706, 14910, 15032, 14859, 14381, 14483, 14288, 14813, 15212, 15315,
      15223, 14809, 11125, 14758, 15244, 14876, 14124, 11921, 14989, 15058, 14938, 14835, 13565, 14624, 14678, 15205,
      14567, 13504, 14861, 11531, 14618, 10146, 13621, 14624, 14849, 14853, 11429, 14339, 11584, 14625, 14717, 13815,
      14536, 14510, 13687, 13496, 14323, 14679, 14930, 13994, 14464, 13903, 13502, 15069, 14769, 15098, 8267,  14274,
      15092, 12553, 15171, 15033, 14416, 12944, 13450, 7388,  14432, 13499, 11582, 15087, 14321, 13927, 14848, 12613,
      14363, 14848, 14352, 15196, 13999, 15332, 14209, 14842, 14958, 12534, 14343, 13924, 13708, 13461, 11637, 14547,
      11127, 13365, 9418,  14569, 13315, 14468, 10755, 14684, 12758, 14080, 15053, 12528, 14937, 15230, 13987, 11713,
      14433, 13539, 13780, 7173,  14561, 12659, 12992, 11349, 12457, 14520, 14523, 13782, 12775, 14346, 15013, 13325,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      11880, 11753, 6459,  14392, 13877, 15195, 14598, 14550, 13889, 14746, 11107, 13097, 14615, 9419,  13007, 13018,
      14222, 12796, 12392, 14443, 14882, 13277, 8521,  15181, 13088, 14393, 13834, 15332, 13605, 12444, 14993, 9433,
      13463, 10558, 10884, 13659, 13271, 14576, 14577, 14459, 14699, 12142, 15236, 9687,  14845, 13997, 12791, 13754,
      14956, 14343, 13564, 14853, 12144, 14074, 13545, 15078, 10321, 14195, 13709, 12695, 15156, 13280, 15276, 12365,
      15203, 12099, 13895, 13919, 14560, 14204, 13339, 14947, 13279, 14393, 14668, 14655, 14563, 15148, 15102, 15131,
      10412, 14766, 13574, 13560, 13926, 15086, 14189, 15212, 12819, 15044, 14025, 13684, 12454, 15232, 10332, 14054,
      12012, 12532, 13700, 14412, 14968, 13642, 13344, 14660, 15205, 15286, 12482, 14829, 14276, 14337, 12881, 14818,
      14140, 14478, 14003, 12802, 14959, 13420, 15192, 14788, 14340, 15351, 13404, 9944,  14488, 13117, 10405, 15095,
      13808, 12943, 14496, 12012, 15045, 14421, 13980, 14862, 15299, 10098, 15161, 10924, 11461, 14357, 14699, 14415,
      15077, 13517, 12150, 13717, 10732, 5651,  12664, 14255, 12880, 13683, 13378, 14858, 7146,  11804, 13439, 12732,
      13152, 12775, 11870, 9128,  13044, 14974, 15290, 14926, 13213, 13608, 15171, 13437, 14144, 13658, 14529, 12541,
      13217, 14336, 14399, 13413, 13503, 14854, 14557, 13883, 13508, 13327, 14788, 15249, 15292, 14663, 13973, 13029,
      14428, 14215, 12959, 15012, 14580, 14184, 14571, 12924, 14133, 14731, 13555, 14168, 14746, 10015, 15212, 14626,
      14724, 12444, 12317, 12709, 14912, 12731, 13557, 13513, 14632, 14075, 12545, 12588, 15317, 14740, 12682, 12690,
      14808, 14686, 14691, 13338, 14594, 13349, 14735, 14704, 14174, 9442,  14914, 13437, 14599, 14152, 13606, 12522,
      14940, 13113, 14935, 14237, 13916, 14691, 14536, 15305, 14955, 12251, 15001, 13519, 13402, 14632, 13716, 14866,
      15112, 14792, 14770, 13838, 14739, 14985, 11484, 14655, 12182, 15192, 14306, 11545, 12635, 15232, 13368, 14235,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14911, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14571, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14660, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13027, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13376, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12388, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15116, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14953, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12801, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15198, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13575, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14810, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14546, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14914, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14220, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14375, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14571, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13694, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13834, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14864, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15179, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14566, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14786, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14435, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14856, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14639, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      11209, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14472, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14804, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      11788, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      11765, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12954, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14575, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12897, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14459, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13661, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14339, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14142, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14353, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14364, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14557, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15342, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14197, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14118, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14933, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13492, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12510, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14703, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13792, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15041, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15284, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12352, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14824, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13448, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      11359, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14515, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15269, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14357, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15224, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13933, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14652, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      12772, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      13786, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14769, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      10686, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      14445, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      15254, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      11142, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  };
  uint16_t data[17 * 2 * 2 * 17] = {
      14643, 15084, 14775, 14950, 14594, 14803, 12177, 13120, 15030, 12525, 12640, 14817, 15252, 14692, 15054, 14655,
      14911, 14386, 13893, 14559, 12220, 11761, 14936, 13865, 14796, 14800, 14307, 14951, 15107, 14857, 14806, 15154,
      9412,  13694, 14043, 14715, 4461,  12136, 11320, 12141, 13421, 14144, 14654, 14438, 12365, 14905, 14475, 11313,
      14675, 14024, 14459, 11880, 11753, 6459,  14392, 13877, 15195, 14598, 14550, 13889, 14746, 11107, 13097, 14615,
      9419,  13007, 13018, 12352, 13395, 13556, 14508, 12414, 14272, 14148, 15056, 14734, 12544, 14138, 14641, 14793,
      8925,  14903, 14744, 15219, 14571, 15010, 14921, 13512, 13793, 15309, 13425, 9729,  14167, 13513, 14683, 13483,
      14709, 13920, 15026, 11308, 12400, 13834, 15086, 14135, 14081, 12712, 13637, 14202, 15194, 10907, 14310, 13866,
      12043, 14719, 12523, 12397, 11980, 14952, 13661, 14222, 12796, 12392, 14443, 14882, 13277, 8521,  15181, 13088,
      14393, 13834, 15332, 13605, 12444, 14993, 9433,  14824, 14346, 12140, 12310, 14303, 12541, 14031, 11419, 14800,
      11586, 14817, 14949, 13869, 9911,  14768, 14748, 11469, 14660, 15305, 14339, 15090, 15119, 12392, 15007, 15177,
      14208, 15306, 13599, 13798, 14864, 11722, 13015, 14789, 14611, 14864, 14791, 14589, 14889, 13021, 12165, 14606,
      14915, 14481, 7432,  11318, 12487, 14494, 13898, 12595, 15251, 13996, 14339, 13463, 10558, 10884, 13659, 13271,
      14576, 14577, 14459, 14699, 12142, 15236, 9687,  14845, 13997, 12791, 13754, 13448, 8984,  13553, 15077, 11291,
      14419, 14259, 12234, 15036, 14970, 14166, 13225, 15283, 11555, 10732, 14294, 13613, 13027, 14106, 12803, 15151,
      15303, 14577, 13538, 14339, 13154, 14084, 14672, 14793, 12240, 15070, 15005, 12175, 12888, 15179, 15238, 14606,
      13433, 13580, 14933, 15357, 14675, 15004, 15062, 13963, 14702, 15011, 12695, 13389, 12565, 6232,  14142, 14956,
      14343, 13564, 14853, 12144, 14074, 13545, 15078, 10321, 14195, 13709, 12695, 15156, 13280, 15276, 12365, 11359,
      13563, 14758, 12310, 13452, 15248, 7913,  14820, 15188, 13607, 15097, 12595, 15041, 13419, 14927, 11680, 13391,
      13376, 12691, 15117, 13446, 14515, 13913, 15123, 15252, 15002, 11511, 14787, 14912, 14650, 12035, 14548, 14950,
      14458, 14566, 14874, 14986, 13113, 12631, 14683, 12689, 13168, 14350, 12712, 14651, 12576, 14268, 14113, 13122,
      12348, 14734, 14353, 15203, 12099, 13895, 13919, 14560, 14204, 13339, 14947, 13279, 14393, 14668, 14655, 14563,
      15148, 15102, 15131, 14515, 14730, 15210, 14573, 14986, 14480, 14810, 14421, 14868, 10163, 14768, 10289, 11549,
      15206, 13973, 13249, 14465, 12388, 14888, 14514, 12791, 12573, 14604, 14992, 13541, 13780, 14397, 7631,  14614,
      14986, 11108, 9225,  13665, 11943, 14786, 13589, 11061, 14828, 15344, 15174, 14972, 11092, 13911, 15065, 13101,
      9859,  14503, 15312, 15270, 13689, 9178,  14364, 10412, 14766, 13574, 13560, 13926, 15086, 14189, 15212, 12819,
      15044, 14025, 13684, 12454, 15232, 10332, 14054, 15269, 14496, 11267, 13298, 14689, 9725,  13593, 14101, 9950,
      14135, 15068, 14225, 12521, 13628, 11982, 13805, 13082, 15116, 12347, 13665, 13279, 14423, 12845, 13661, 15214,
      15317, 14435, 12791, 13900, 15242, 15298, 13969, 14826, 12584, 14435, 14120, 14380, 13990, 13286, 13716, 15054,
      14484, 14296, 14432, 14359, 12895, 14532, 13144, 13461, 14701, 14595, 14557, 12012, 12532, 13700, 14412, 14968,
      13642, 13344, 14660, 15205, 15286, 12482, 14829, 14276, 14337, 12881, 14818, 14357, 15123, 14687, 8903,  14758,
      15064, 14312, 14878, 13979, 14309, 13373, 14744, 14816, 15310, 8674,  9634,  12371, 14953, 13064, 14236, 15186,
      14340, 14893, 10331, 15251, 13083, 13584, 14344, 12569, 15036, 14204, 14777, 13837, 9226,  14856, 10068, 14653,
      15162, 13017, 12396, 12356, 13637, 14958, 15264, 13340, 14541, 11381, 13584, 13979, 12390, 13560, 15342, 14140,
      14478, 14003, 12802, 14959, 13420, 15192, 14788, 14340, 15351, 13404, 9944,  14488, 13117, 10405, 15095, 15224,
      13822, 13824, 14557, 10587, 14401, 15024, 14156, 14041, 13187, 14616, 15076, 13747, 13466, 13658, 15143, 13651,
      12801, 14390, 14256, 9829,  14674, 14495, 11709, 13436, 10770, 11661, 12662, 14120, 13109, 14908, 14266, 15293,
      13191, 14639, 14273, 12290, 14310, 14260, 14359, 11935, 14459, 15121, 11360, 10629, 15080, 10805, 14465, 15294,
      11377, 13617, 14197, 13808, 12943, 14496, 12012, 15045, 14421, 13980, 14862, 15299, 10098, 15161, 10924, 11461,
      14357, 14699, 14415, 13933, 14175, 13921, 14447, 14076, 13601, 15003, 15049, 15102, 13701, 13614, 14557, 14391,
      14514, 13575, 15138, 15103, 15198, 15269, 12610, 11706, 15330, 15108, 13080, 13123, 15201, 13707, 10054, 15187,
      14830, 9929,  14661, 13177, 14356, 11209, 13625, 14975, 13361, 15188, 11507, 13782, 13706, 14910, 15032, 14859,
      14381, 14483, 14288, 14813, 15212, 15315, 14118, 15077, 13517, 12150, 13717, 10732, 5651,  12664, 14255, 12880,
      13683, 13378, 14858, 7146,  11804, 13439, 12732, 14652, 15112, 14971, 14817, 14402, 14761, 9003,  14242, 14980,
      14496, 14497, 14609, 13874, 8555,  13947, 12563, 10897, 13575, 12342, 14773, 13089, 12318, 13166, 14760, 13345,
      14645, 14567, 15115, 13404, 14136, 14565, 13476, 13556, 14580, 14472, 15223, 14809, 11125, 14758, 15244, 14876,
      14124, 11921, 14989, 15058, 14938, 14835, 13565, 14624, 14678, 15205, 14933, 13152, 12775, 11870, 9128,  13044,
      14974, 15290, 14926, 13213, 13608, 15171, 13437, 14144, 13658, 14529, 12541, 12772, 14602, 14543, 14369, 14684,
      15008, 14482, 14680, 14910, 14616, 13475, 15173, 14966, 14472, 14434, 13850, 14037, 14810, 13406, 15357, 14433,
      15156, 14827, 13972, 14672, 13399, 12478, 14720, 13335, 14073, 14411, 14526, 12450, 14861, 14804, 14567, 13504,
      14861, 11531, 14618, 10146, 13621, 14624, 14849, 14853, 11429, 14339, 11584, 14625, 14717, 13815, 13492, 13217,
      14336, 14399, 13413, 13503, 14854, 14557, 13883, 13508, 13327, 14788, 15249, 15292, 14663, 13973, 13029, 13786,
      14811, 14348, 15039, 14880, 10391, 12333, 15321, 14740, 15207, 14610, 14648, 12813, 6567,  14928, 14413, 14744,
      14546, 14134, 9725,  12565, 14915, 14003, 11550, 14061, 14535, 13853, 12453, 14490, 15016, 15297, 14140, 14761,
      14240, 11788, 14536, 14510, 13687, 13496, 14323, 14679, 14930, 13994, 14464, 13903, 13502, 15069, 14769, 15098,
      8267,  14274, 12510, 14428, 14215, 12959, 15012, 14580, 14184, 14571, 12924, 14133, 14731, 13555, 14168, 14746,
      10015, 15212, 14626, 14769, 11330, 14223, 14667, 13822, 13416, 15092, 15163, 13721, 14985, 9430,  12456, 14628,
      15093, 15078, 15046, 15078, 14914, 13114, 14017, 15109, 14027, 14750, 15099, 14659, 15315, 15280, 13607, 15302,
      12982, 14741, 13700, 14019, 14737, 11765, 15092, 12553, 15171, 15033, 14416, 12944, 13450, 7388,  14432, 13499,
      11582, 15087, 14321, 13927, 14848, 12613, 14703, 14724, 12444, 12317, 12709, 14912, 12731, 13557, 13513, 14632,
      14075, 12545, 12588, 15317, 14740, 12682, 12690, 10686, 14990, 14651, 14006, 13975, 15298, 14288, 14979, 13086,
      14670, 13331, 12948, 14906, 15132, 15037, 14229, 14915, 14220, 15142, 14341, 15349, 15248, 14658, 14385, 15234,
      13992, 12674, 14441, 14450, 13356, 14453, 11286, 14279, 13864, 12954, 14363, 14848, 14352, 15196, 13999, 15332,
      14209, 14842, 14958, 12534, 14343, 13924, 13708, 13461, 11637, 14547, 13792, 14808, 14686, 14691, 13338, 14594,
      13349, 14735, 14704, 14174, 9442,  14914, 13437, 14599, 14152, 13606, 12522, 14445, 13694, 14670, 13931, 9961,
      15073, 12960, 14769, 14151, 14950, 14695, 12619, 14347, 14390, 11545, 14696, 13679, 14375, 13637, 13656, 14231,
      15128, 13956, 13701, 14356, 13255, 14956, 14416, 14589, 10372, 13312, 13646, 12487, 14193, 14575, 11127, 13365,
      9418,  14569, 13315, 14468, 10755, 14684, 12758, 14080, 15053, 12528, 14937, 15230, 13987, 11713, 15041, 14940,
      13113, 14935, 14237, 13916, 14691, 14536, 15305, 14955, 12251, 15001, 13519, 13402, 14632, 13716, 14866, 15254,
      15111, 12417, 14618, 12814, 13727, 14465, 14517, 14346, 14509, 13867, 15316, 13620, 13718, 13418, 13772, 12245,
      14571, 14248, 12300, 14051, 14149, 12979, 14556, 12855, 13393, 12614, 13063, 14960, 14242, 15221, 14739, 15318,
      12088, 12897, 14433, 13539, 13780, 7173,  14561, 12659, 12992, 11349, 12457, 14520, 14523, 13782, 12775, 14346,
      15013, 13325, 15284, 15112, 14792, 14770, 13838, 14739, 14985, 11484, 14655, 12182, 15192, 14306, 11545, 12635,
      15232, 13368, 14235, 11142,
  };

  TransArgs args{
      reinterpret_cast<uint8_t *>(data_4d), FORMAT_FRACTAL_Z, FORMAT_NHWC, {8, 2, 16, 16}, {17, 2, 2, 17}, DT_FLOAT16};
  TransResult result;

  FormatTransferFracZNhwc transfer;
  EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS);
  EXPECT_EQ(result.length, sizeof(data));
  for (int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
    EXPECT_EQ((reinterpret_cast<uint16_t *>(result.data.get()))[i], data[i]);
  }
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_fp32_success_eq_cube) {
  float data_4d[4 * 1 * 16 * 16] = {
      0.484169822867354,     0.8140947249809813,   0.4940455204015697,    0.7135851157134282,    0.8768734157203649,
      0.4184033435957544,    0.44292626120971623,  0.696532137919516,     0.9171321370698801,    0.7151284988967475,
      0.5109347861993496,    0.38142119707414746,  0.6698099769064979,    0.11820154777502989,   0.13012960479351465,
      0.16817089869937873,   0.5302578028349337,   0.7252510992951486,    0.8213662663451495,    0.255865605133453,
      0.5347808590628998,    0.03484423993654684,  0.4053151604997237,    0.1268756305743911,    0.7512214677373925,
      0.7021691682264435,    0.5790723649519143,   0.19175327358031247,   0.5748858471708752,    0.34613167229455966,
      0.9081476470039521,    0.6213341986714184,   0.8738901859075797,    0.4191500219416586,    0.9272377212501333,
      0.6088513158752427,    0.43503086957072457,  0.7568802524830642,    0.6218604254226138,    0.4893048459594117,
      0.020152542775963678,  0.7267242398249997,   0.9274966736416573,    0.49200037295381294,   0.42692100017651613,
      0.7892621068774159,    0.6845597457970014,   0.8711448933002091,    0.9718143171574413,    0.6597628763384622,
      0.34484306915489416,   0.880431818533278,    0.7955875470049112,    0.8757665484415526,    0.9915924406526361,
      0.04436704716518447,   0.02262359380765988,  0.7052472895837604,    0.7057299524522475,    0.3194782791822033,
      0.09871902909610286,   0.364619480384346,    0.06943275085154965,   0.4214138425069305,    0.6434162586445695,
      0.5323110978433342,    0.1248556733436923,   0.15902590556482255,   0.4712411793898579,    0.7894290004428436,
      0.5032833161606196,    0.527059468896646,    0.9191006481472115,    0.25305549423863427,   0.6340006741168577,
      0.358184464955455,     0.25972912049066155,  0.18926991931768677,   0.27595176819944,      0.8161194869680272,
      0.6487804290051798,    0.17197756477570048,  0.1792393744184949,    0.7262808230390461,    0.5266352244919847,
      0.3774751618211455,    0.14059289117160334,  0.08529920580377037,   0.28344872274215105,   0.9959953800069987,
      0.08464059391988354,   0.6670563867386871,   0.4687389304005585,    0.532305594930434,     0.28410362935440214,
      0.07129098950073931,   0.90130643092616,     0.1863314734620497,    0.7182836382686819,    0.05869761827209363,
      0.43215310837091325,   0.5109770631402548,   0.8507620188714253,    0.9448034463404849,    0.8204290492967814,
      0.30175616425548013,   0.6347738558965675,   0.7115068243493056,    0.9106453434867423,    0.7081724799882917,
      0.9480983751448969,    0.30683290902116644,  0.13870348711282365,   0.882637588475232,     0.8911520456086311,
      0.13836682539246214,   0.9507965084267185,   0.5052382254338335,    0.45961247912692105,   0.979182256053379,
      0.4013111553698335,    0.7788395612306059,   0.8062745586439758,    0.19584512860236825,   0.275650733936018,
      0.23472653953495393,   0.5268011060669119,   0.11615458325117867,   0.37003145722910347,   0.7429488863605441,
      0.7499741271194941,    0.849429488346799,    0.764998070770062,     0.8627353540448067,    0.2639189465037146,
      0.18543192561486244,   0.8406963006607173,   0.29867265092172757,   0.5830874946322163,    0.7266542276089016,
      0.47732859671105865,   0.5276495401100896,   0.0285892476174624,    0.10154908386840933,   0.4088412035484068,
      0.7434536979800712,    0.9525161199007488,   0.07138799479311309,   0.8519420240978587,    0.08747097413510685,
      0.06259133820158325,   0.6102164785932812,   0.5272535740517759,    0.3882790321273053,    0.5219871401239666,
      0.08342830725989958,   0.06992376312633286,  0.45588347082683367,   0.8507181024497145,    0.8168001145505971,
      0.6288218440807817,    0.5627797837213618,   0.8642380932712407,    0.6296224131150504,    0.810297385035068,
      0.9521660572032933,    0.006989866947720524, 0.15360690769811158,   0.609592365107798,     0.856111276058204,
      0.5569449989810563,    0.6358938242284586,   0.43974619938434945,   0.23369648280955435,   0.17610792852502044,
      0.5393700616427376,    0.14414511952710007,  0.9499336265300194,    0.6444587977800735,    0.7418623715827386,
      0.044802260433499996,  0.850581483363445,    0.05712457779883895,   0.15282854721354788,   0.3482893221081773,
      0.6247260064132429,    0.42099978778043057,  0.7479237929881165,    0.02099064732615097,   0.013098766701113651,
      0.7226056703495463,    0.04820012498442583,  0.30512165089613275,   0.7316809143395435,    0.33837084272328344,
      0.031181701520131222,  0.8998729244301411,   0.13963009532040604,   0.5524300751373528,    0.998751142570437,
      0.8079412199511319,    0.38764559152084754,  0.3210831483519665,    0.7304185865067885,    0.5822602684215884,
      0.6364590811085312,    0.10627778088019713,  0.5399985372878428,    0.3140212188001139,    0.6511943391734281,
      0.7376690823137533,    0.16614528063403933,  0.45753024916507445,   0.6563453150496379,    0.011057777761439902,
      0.0018264730571969645, 0.3140058709073794,   0.8479357203115255,    0.9718814368259422,    0.2938044793936031,
      0.389604645965164,     0.7259980798553759,   0.384597064894432,     0.6461406690633517,    0.28149855317178163,
      0.03265235541107758,   0.7517419899840844,   0.3364005732928873,    0.7329527122940036,    0.43759767242690906,
      0.3172137189567925,    0.2707815810278883,   0.6642248201697422,    0.3972911147544086,    0.009127503808928017,
      0.1234374452587974,    0.39970292448775213,  0.11989802753965029,   0.9927165644356675,    0.8609568773974031,
      0.8160834394485424,    0.8645970999084115,   0.43923002522405574,   0.3760052855173096,    0.08902326927063253,
      0.09948678314542847,   0.3578210615036086,   0.8485940282988038,    0.2516468752579376,    0.7365499301475807,
      0.5612758649671108,    0.7859804827616864,   0.8851363067086282,    0.8935474690220618,    0.5336384648157917,
      0.23839322063516444,   0.8176105543815939,   0.629909392274251,     0.31313221345906006,   0.3221421451570968,
      0.5818901337492731,    0.9534404285747669,   0.30689058064437647,   0.7213959303267752,    0.6899507455723445,
      0.1145659733805463,    0.36766351628538607,  0.882482457649216,     0.8273160847663066,    0.344437602133445,
      0.6831369390963725,    0.15697402810153005,  0.7568275537113736,    0.3692026509026701,    0.25344774469478004,
      0.24956690401767134,   0.012836876914660733, 0.985850540555467,     0.8626773871697432,    0.5476182090476109,
      0.3623970160812814,    0.9376822616892581,   0.14087495346759915,   0.23523285339278033,   0.037762342255319714,
      0.020689168902525368,  0.6838812404349178,   0.5299351074122371,    0.7796551239198329,    0.46483996491976176,
      0.3896989084777407,    0.0246526241822681,   0.150842690954615,     0.2168947002788526,    0.1149972560028748,
      0.8984092864643223,    0.12025595226036978,  0.39457447774297594,   0.27976746576883327,   0.9120741897014442,
      0.07701027303624552,   0.8145938381183272,   0.988408599764702,     0.9891205523056846,    0.38958399171559976,
      0.19562724561171574,   0.7406668247925765,   0.5176452064093667,    0.1833071142826258,    0.981011435762899,
      0.1038485455897169,    0.6360424773286126,   0.07505098129761023,   0.7110748432628814,    0.23864180641973576,
      0.6311090911472507,    0.2898434465648123,   0.024685643880116404,  0.1206400134468234,    0.9642954826184025,
      0.1307237743057954,    0.3682368837401174,   0.10696899485835165,   0.4381449790035217,    0.8778405603604115,
      0.33026410718319044,   0.43155412970009344,  0.688941263482083,     0.6484615948673739,    0.20103619018128005,
      0.08393097766033852,   0.8913511709861782,   0.39172683394484564,   0.8390068848742098,    0.8242315116115289,
      0.016933814177084616,  0.09858800624814978,  0.4866184190503341,    0.5797421505352837,    0.7275188051657857,
      0.8257101240399874,    0.2805336430088575,   0.5360449509204634,    0.48837931206904084,   0.9312020866617485,
      0.7410346712070657,    0.08381751355840361,  0.622083699685216,     0.5182872441017575,    0.20300436297731594,
      0.8408847205120992,    0.4065634267823589,   0.538625415898359,     0.24508951206516771,   0.6706828695669036,
      0.8841876638401157,    0.14646094171092727,  0.0873651816168074,    0.3789152991251008,    0.7514417784728014,
      0.36660529419052745,   0.9058668780554411,   0.3905648290701539,    0.46346477300678546,   0.1784939685332635,
      0.5505805956291808,    0.57458139202536,     0.37655520125792563,   0.21289003081542524,   0.41033428588999377,
      0.13922941757955198,   0.7339905698509648,   0.6420365465526778,    0.5935365043786606,    0.031448611228246826,
      0.6446584269225506,    0.3168819180982111,   0.6919296394674304,    0.7611936857915317,    0.6581989409515427,
      0.7119379353798316,    0.19877568188642458,  0.29773337106911635,   0.6353172249870478,    0.7355153876080694,
      0.5965273658488094,    0.9873670681950693,   0.4231813740764955,    0.2367076098094284,    0.7766733432911771,
      0.6429580955121145,    0.8307521364617134,   0.6525257497726437,    0.6857387208240013,    0.6812935881218981,
      0.24823806562055328,   0.23222434233678046,  0.14734449630794566,   0.8593695744180271,    0.9521390092531038,
      0.814592050185302,     0.8530358400139052,   0.7553391685463368,    0.467322607265681,     0.40821268238278274,
      0.15224535394276528,   0.7721886316195505,   0.3188390117882929,    0.18861616707188456,   0.3183899178336651,
      0.14272447128849497,   0.490605601502897,    0.046383765771242036,  0.16415576287753442,   0.22888703447357206,
      0.5375730996026021,    0.535512670941786,    0.5912839261540107,    0.6983894048201051,    0.15323404928308648,
      0.8182668948670956,    0.29446560941893807,  0.418354823269551,     0.21870888711201486,   0.6424499336686369,
      0.3214700322107067,    0.24736247781577525,  0.7305497857337323,    0.568789544871731,     0.6533320204219322,
      0.33898139527730176,   0.16552403626291268,  0.10248361115345117,   0.8892140389602003,    0.9313325327216908,
      0.7919070208756257,    0.0708315749326881,   0.2188073927368014,    0.8127787161494373,    0.6257366952292145,
      0.6924998870427207,    0.26793105051769306,  0.7826490483783863,    0.5966997551066409,    0.2129270109769711,
      0.44769099683243785,   0.7574472416898225,   0.26729283252732317,   0.4140922332840643,    0.32495829469129234,
      0.7880364474443821,    0.6521293980091717,   0.23933614126005887,   0.40069381935472004,   0.3253434499214978,
      0.43850426563837475,   0.3582655821803802,   0.02315611544237217,   0.7562158058764148,    0.7040259198312322,
      0.5059192662520398,    0.052574245106938755, 0.0044571360420935235, 0.19994806707117685,   0.17143060225012974,
      0.7905787674108862,    0.700764812184617,    0.9178067635156595,    0.007883547902275412,  0.04345877753973626,
      0.40662108491778937,   0.32503174588972183,  0.05007085167672787,   0.9581958519270192,    0.20437076813207167,
      0.2397322863247101,    0.2432309640469006,   0.945083897778037,     0.715659408560469,     0.24955287567344286,
      0.28473276918917545,   0.5837263814586879,   0.2741346897790268,    0.5647425538488864,    0.969909805392653,
      0.7261702056098153,    0.5430436390733616,   0.08333922871976862,   0.5609888136600801,    0.014806506476614079,
      0.9455759599914065,    0.3193070470406175,   0.08542679684744281,   0.6744677936417323,    0.27782578504968625,
      0.29358418856919855,   0.23213589762876796,  0.005758486459847889,  0.36868262474116764,   0.264207113494464,
      0.36157643004033746,   0.9637257888559727,   0.5737186764359195,    0.5315516381845716,    0.5101088363620886,
      0.039248651321625805,  0.9681240024592983,   0.08677429466572284,   0.9518099421221371,    0.7952823450404229,
      0.05713730664487837,   0.17614720504232317,  0.5864853334395049,    0.5355917571532767,    0.14016085457936855,
      0.4699268852262969,    0.588214580416792,    0.7315541026108536,    0.2615939952632047,    0.6940338433274365,
      0.9654764709266905,    0.17552901543503086,  0.2673106011552777,    0.16278327321010144,   0.2829647956459945,
      0.027781103679172303,  0.9715339351098571,   0.5104277134265274,    0.26688023346613854,   0.7675111602635859,
      0.8456916770759129,    0.9418274416132982,   0.4082337424410951,    0.2966721771835694,    0.4702670949658979,
      0.6827917396699957,    0.34049137335485646,  0.979883320082454,     0.9532270119107664,    0.8572037348042103,
      0.848146567657908,     0.431869811030539,    0.7941580229111237,    0.3436486153857896,    0.7273788931852989,
      0.49224680779113494,   0.3862553126741952,   0.9807757900646529,    0.701979947074233,     0.26056383661375004,
      0.6931835277270919,    0.7067946120442928,   0.4582357436150932,    0.11829934680864151,   0.2095153024553008,
      0.9185955528449318,    0.12823153669882037,  0.7424605800987469,    0.25214577369248303,   0.9208309549123908,
      0.28212583854425577,   0.33137007225108495,  0.24341818673228321,   0.2619469700798778,    0.28262355294589947,
      0.7755838712533507,    0.4053638246615504,   0.7976887925976534,    0.5522240670284019,    0.7227130132090629,
      0.5864070673077637,    0.42782888384518447,  0.28679923903462323,   0.16844780802036896,   0.17193836732536305,
      0.007199948294376979,  0.8432770047003173,   0.5329394715412086,    0.9027093385378767,    0.13464647139460417,
      0.8011185435869719,    0.8299531042565435,   0.16599661763813744,   0.6152441825738123,    0.25151020323522655,
      0.447172104562374,     0.5702866695855857,   0.8192062209036824,    0.23552991431295267,   0.32632467763985884,
      0.038987953903722006,  0.11718840620381377,  0.9992640055987563,    0.5148951028222453,    0.15248694988722633,
      0.6534611001367189,    0.031062641103680733, 0.8694831172503376,    0.24862657671809274,   0.6479564397956218,
      0.504649233907658,     0.07716366084071735,  0.6049908845448526,    0.7137870858666769,    0.7054652650387054,
      0.36350442596954213,   0.8795945111811084,   0.582926532185696,     0.8714877396827005,    0.06711091117831969,
      0.2982765088342778,    0.3329050905695813,   0.4865987400975561,    0.6201284834454466,    0.46275286462889154,
      0.8851839278084489,    0.9999593670233206,   0.2758236652060908,    0.17890347032894782,   0.048086683036078326,
      0.28413000356301654,   0.9536736877854535,   0.44798896242923036,   0.29983211622633354,   0.6784308970797828,
      0.08779676069610531,   0.42626312256206,     0.22394679796804695,   0.9244223195097627,    0.15901668161462468,
      0.7618146378555393,    0.07687698303830115,  0.1929344802840327,    0.7553281474784295,    0.8025581206851257,
      0.14022257845130615,   0.9138712084521406,   0.8040597327540038,    0.6328239965840534,    0.6024965111935174,
      0.5589881068558278,    0.048191039611119035, 0.1404201318896956,    0.40850427818021384,   0.7203622066092176,
      0.8471988115463831,    0.8860087660548518,   0.45971281262939667,   0.08887747998382489,   0.9740387490405953,
      0.8585000450094692,    0.36058899298739555,  0.4278199731132287,    0.8375237958882933,    0.01417622872482538,
      0.16029654637258495,   0.057127838376448525, 0.35749934689051033,   0.2930410231839118,    0.8409144982684501,
      0.07593293596409612,   0.356635418237763,    0.226719753247275,     0.0007109181986780788, 0.7184665789785081,
      0.395824938261763,     0.4867276192621923,   0.5172670089066486,    0.5841508888388441,    0.08047869657287621,
      0.9482746906157185,    0.41294535716449154,  0.19159501891328978,   0.5578510869508337,    0.29546640911784916,
      0.2869367181145863,    0.7294147056255083,   0.3991485374776169,    0.4445980140617459,    0.6662896463638776,
      0.8614878148940442,    0.1808774427317561,   0.4614411389376568,    0.3303364346947858,    0.8028852020786104,
      0.5169929310162137,    0.14136531759583693,  0.9831280581298246,    0.5630783736198899,    0.8608024828157775,
      0.3931840317246529,    0.022722258330870937, 0.1056061545184902,    0.6060652796018042,    0.3352528944308385,
      0.8977154563912682,    0.7221307220260405,   0.46922215009200297,   0.4677265831501206,    0.49431288865022915,
      0.42276247133689504,   0.6788161518073327,   0.04439101827129144,   0.028811435615006542,  0.6839680845965146,
      0.9986738127631021,    0.07122924252967722,  0.6409050009983894,    0.8555552153820654,    0.9370992032325905,
      0.7376153474252244,    0.05650174272501618,  0.9555164199341558,    0.24096140966133506,   0.15235115309934777,
      0.2227762469886192,    0.7035491425028773,   0.4883693004134255,    0.4991880671239809,    0.2038723768682421,
      0.4424646154063001,    0.42947559846701466,  0.15496718950982546,   0.8613665468468363,    0.6173709310699306,
      0.34240192063131025,   0.17697172987534104,  0.05400248287734222,   0.47400410893135847,   0.5657413124334275,
      0.6886788284227651,    0.693192811671234,    0.5531430026891606,    0.766990407259576,     0.8518985685483231,
      0.5389165861980743,    0.9950513588111255,   0.09523381762884475,   0.7696317754383216,    0.6698100854232568,
      0.43625543466202976,   0.2330898194698613,   0.4127476057822641,    0.9294766285644805,    0.05680528782969185,
      0.6537538588698784,    0.17396071383121814,  0.9595723514929978,    0.42975991044177986,   0.5431447973683532,
      0.8833668707212631,    0.26133302914884515,  0.14661930610537355,   0.7433132788379365,    0.3574322869140888,
      0.2341799637707056,    0.8349985525202629,   0.8160746720387089,    0.6407640183325787,    0.6197726260454984,
      0.41237945120152153,   0.1830987925080485,   0.7553599629295343,    0.05454691882123808,   0.5562940920005512,
      0.5102400141204675,    0.9541297229195699,   0.5577971859903864,    0.2938597050255226,    0.8403402780212583,
      0.47661930123442686,   0.4103920153350502,   0.3119461029229196,    0.3801380305294956,    0.3434681831027364,
      0.7197973788263885,    0.0987748411433772,   0.01388200527143002,   0.1651316494632148,    0.9141734949661398,
      0.2719071586501257,    0.711375764410416,    0.3627408492437765,    0.18177223898925443,   0.7975651507116626,
      0.6859695133005402,    0.990527721423081,    0.08901845138285569,   0.47695118798375047,   0.4581629061404291,
      0.6647405334731831,    0.4779626404166062,   0.5638043017770987,    0.3701472211861363,    0.3793667615579185,
      0.49023578639191434,   0.5453313612019725,   0.580306136685107,     0.9098682664715276,    0.4207018293353191,
      0.741785389613043,     0.9262602540365329,   0.703428108041273,     0.8044195024538315,    0.27721795146313744,
      0.1630139202426243,    0.34579225120146284,  0.11553068934190114,   0.5928663617496019,    0.8952425964480728,
      0.47925358700494936,   0.345789231337841,    0.3110153026634752,    0.4628526273295195,    0.39546232211152244,
      0.04056519079629961,   0.6268438803068547,   0.8592557500599268,    0.9575425033955798,    0.3502505288978284,
      0.059258039358505155,  0.7518021608110209,   0.8739573910743396,    0.7067417457943123,    0.23881851357439288,
      0.5516104950394077,    0.16949728066552805,  0.17699999941441635,   0.3259215888704792,    0.6829558794210719,
      0.8768342657870796,    0.0828341270227837,   0.7034737450184155,    0.546752909248851,     0.7267979136936736,
      0.03712586684634822,   0.03808220856446631,  0.4344229625584559,    0.5073943443532393,    0.0876469591985547,
      0.5479537630990768,    0.15022676424664938,  0.7065732472092339,    0.5267637826119574,    0.49239129236901735,
      0.8218857103459851,    0.7979465301023618,   0.029548757715175067,  0.6932694244947931,    0.5595855181231474,
      0.7570733169968579,    0.3926838954245869,   0.06662638382372121,   0.7354175771053119,    0.6689967299755643,
      0.1503851907294197,    0.09334662866451149,  0.6985469006194642,    0.3853073559702226,    0.7598678794046461,
      0.8430367249722724,    0.09609005474058485,  0.3327016836424206,    0.5147633020947202,    0.9849763413326892,
      0.45758533152883063,   0.5410627384028919,   0.8101421663582148,    0.4745789007815937,    0.9695833469428511,
      0.7406298601731718,    0.8928719524735501,   0.07408106888379695,   0.48443913560921603,   0.9875039549398698,
      0.9207282373994886,    0.916412184605058,    0.5325664548137249,    0.5186829523993904,    0.0011137436559524039,
      0.7348700397039633,    0.09290265494838656,  0.23580663015210346,   0.35820294378273676,   0.7639205360566864,
      0.9465492151069357,    0.4252441824179847,   0.5316291043266255,    0.8122536967408113,    0.5789541420307059,
      0.22093739858997807,   0.721478902701215,    0.6885946622229991,    0.17835185715057533,   0.7238629983060336,
      0.20125336494303825,   0.16681217791113911,  0.9318773298015346,    0.1515859497360037,    0.21766180447529104,
      0.4792250665535124,    0.24411300991628737,  0.3217581574119305,    0.8390359459774884,    0.9659682387174011,
      0.40034412355266336,   0.5255065433133791,   0.42837064152809445,   0.7654114974398095,    0.3865006028597384,
      0.24734575434479678,   0.41425008509412264,  0.8361654352683431,    0.4321112716511004,    0.011850429412228025,
      0.4725427310129483,    0.13015593957624672,  0.4613391477382468,    0.6411806951208191,    0.5748219462376235,
      0.7676968075086735,    0.4551543834911985,   0.3981321361133089,    0.5537117150328572,    0.640188645994515,
      0.8733008957299926,    0.7680564850159917,   0.591855214421642,     0.7758621954461007,    0.9883180605472691,
      0.7032276300145796,    0.31585307578954147,  0.28146832444773495,   0.9471559002035407,    0.44047203430454707,
      0.29854162639920856,   0.07733153530994863,  0.8953385322255972,    0.8718260794429866,    0.8244843036717918,
      0.9473049441286394,    0.13636726569332214,  0.9029170461356006,    0.2711524085545959,    0.008956533117231325,
      0.14719117410301985,   0.7352499716127123,   0.9005647194328514,    0.04239801036045521,   0.32113153439789777,
      0.23008784431942686,   0.25059835793851803,  0.7821196322936473,    0.3571983300993258,    0.2624691465092742,
      0.8018016489757368,    0.5248393284810376,   0.6977900148749919,    0.33093445127674614,   0.7554471103150353,
      0.7756032542183166,    0.006225581322849116, 0.4008868869085592,    0.20812329467775148,   0.17556686644385078,
      0.6096597423735237,    0.6191160871486041,   0.7349303921541335,    0.9192496344735487,    0.24229302674522868,
      0.9899032791595263,    0.29044779138561216,  0.8321620650117503,    0.7598221463622512,    0.4229989353498531,
      0.9387553475507483,    0.9984378083937185,   0.8151195733132465,    0.7295039076200354,    0.0922729891266788,
      0.8668318130738214,    0.23372381782403595,  0.03956728658695974,   0.9606270879918739,    0.8167629519087327,
      0.6627590908369925,    0.3128149140030476,   0.6317394199057031,    0.12021250922401605,   0.42604564092211705,
      0.3977230376064276,    0.022079790505487362, 0.37848317176894164,   0.46852397650558253,   0.20735781040531553,
      0.8524713092661131,    0.44086749842642614,  0.9183713393663233,    0.9450411621274358,    0.697302770534409,
      0.9135605184069232,    0.09015468169209084,  0.704151745426799,     0.5400455593098272,    0.5480655211682695,
      0.30738071301825654,   0.15067120555532854,  0.925682378381145,     0.3371623491173492,    0.9597353973741677,
      0.9125053638178813,    0.5331026395371243,   0.7058339751156828,    0.28253557117321937,   0.7269649285767406,
      0.12353532557783586,   0.4491118104036773,   0.6637148382841026,    0.6351120142249237,    0.864473727452456,
      0.8265584180895602,    0.6156722515329398,   0.8643555219638754,    0.6571916479877694,
  };
  float data[2 * 2 * 16 * 16] = {
      0.484169822867354,     0.8140947249809813,   0.4940455204015697,    0.7135851157134282,    0.8768734157203649,
      0.4184033435957544,    0.44292626120971623,  0.696532137919516,     0.9171321370698801,    0.7151284988967475,
      0.5109347861993496,    0.38142119707414746,  0.6698099769064979,    0.11820154777502989,   0.13012960479351465,
      0.16817089869937873,   0.8176105543815939,   0.629909392274251,     0.31313221345906006,   0.3221421451570968,
      0.5818901337492731,    0.9534404285747669,   0.30689058064437647,   0.7213959303267752,    0.6899507455723445,
      0.1145659733805463,    0.36766351628538607,  0.882482457649216,     0.8273160847663066,    0.344437602133445,
      0.6831369390963725,    0.15697402810153005,  0.5864853334395049,    0.5355917571532767,    0.14016085457936855,
      0.4699268852262969,    0.588214580416792,    0.7315541026108536,    0.2615939952632047,    0.6940338433274365,
      0.9654764709266905,    0.17552901543503086,  0.2673106011552777,    0.16278327321010144,   0.2829647956459945,
      0.027781103679172303,  0.9715339351098571,   0.5104277134265274,    0.2938597050255226,    0.8403402780212583,
      0.47661930123442686,   0.4103920153350502,   0.3119461029229196,    0.3801380305294956,    0.3434681831027364,
      0.7197973788263885,    0.0987748411433772,   0.01388200527143002,   0.1651316494632148,    0.9141734949661398,
      0.2719071586501257,    0.711375764410416,    0.3627408492437765,    0.18177223898925443,   0.5302578028349337,
      0.7252510992951486,    0.8213662663451495,   0.255865605133453,     0.5347808590628998,    0.03484423993654684,
      0.4053151604997237,    0.1268756305743911,   0.7512214677373925,    0.7021691682264435,    0.5790723649519143,
      0.19175327358031247,   0.5748858471708752,   0.34613167229455966,   0.9081476470039521,    0.6213341986714184,
      0.7568275537113736,    0.3692026509026701,   0.25344774469478004,   0.24956690401767134,   0.012836876914660733,
      0.985850540555467,     0.8626773871697432,   0.5476182090476109,    0.3623970160812814,    0.9376822616892581,
      0.14087495346759915,   0.23523285339278033,  0.037762342255319714,  0.020689168902525368,  0.6838812404349178,
      0.5299351074122371,    0.26688023346613854,  0.7675111602635859,    0.8456916770759129,    0.9418274416132982,
      0.4082337424410951,    0.2966721771835694,   0.4702670949658979,    0.6827917396699957,    0.34049137335485646,
      0.979883320082454,     0.9532270119107664,   0.8572037348042103,    0.848146567657908,     0.431869811030539,
      0.7941580229111237,    0.3436486153857896,   0.7975651507116626,    0.6859695133005402,    0.990527721423081,
      0.08901845138285569,   0.47695118798375047,  0.4581629061404291,    0.6647405334731831,    0.4779626404166062,
      0.5638043017770987,    0.3701472211861363,   0.3793667615579185,    0.49023578639191434,   0.5453313612019725,
      0.580306136685107,     0.9098682664715276,   0.4207018293353191,    0.8738901859075797,    0.4191500219416586,
      0.9272377212501333,    0.6088513158752427,   0.43503086957072457,   0.7568802524830642,    0.6218604254226138,
      0.4893048459594117,    0.020152542775963678, 0.7267242398249997,    0.9274966736416573,    0.49200037295381294,
      0.42692100017651613,   0.7892621068774159,   0.6845597457970014,    0.8711448933002091,    0.7796551239198329,
      0.46483996491976176,   0.3896989084777407,   0.0246526241822681,    0.150842690954615,     0.2168947002788526,
      0.1149972560028748,    0.8984092864643223,   0.12025595226036978,   0.39457447774297594,   0.27976746576883327,
      0.9120741897014442,    0.07701027303624552,  0.8145938381183272,    0.988408599764702,     0.9891205523056846,
      0.7273788931852989,    0.49224680779113494,  0.3862553126741952,    0.9807757900646529,    0.701979947074233,
      0.26056383661375004,   0.6931835277270919,   0.7067946120442928,    0.4582357436150932,    0.11829934680864151,
      0.2095153024553008,    0.9185955528449318,   0.12823153669882037,   0.7424605800987469,    0.25214577369248303,
      0.9208309549123908,    0.741785389613043,    0.9262602540365329,    0.703428108041273,     0.8044195024538315,
      0.27721795146313744,   0.1630139202426243,   0.34579225120146284,   0.11553068934190114,   0.5928663617496019,
      0.8952425964480728,    0.47925358700494936,  0.345789231337841,     0.3110153026634752,    0.4628526273295195,
      0.39546232211152244,   0.04056519079629961,  0.9718143171574413,    0.6597628763384622,    0.34484306915489416,
      0.880431818533278,     0.7955875470049112,   0.8757665484415526,    0.9915924406526361,    0.04436704716518447,
      0.02262359380765988,   0.7052472895837604,   0.7057299524522475,    0.3194782791822033,    0.09871902909610286,
      0.364619480384346,     0.06943275085154965,  0.4214138425069305,    0.38958399171559976,   0.19562724561171574,
      0.7406668247925765,    0.5176452064093667,   0.1833071142826258,    0.981011435762899,     0.1038485455897169,
      0.6360424773286126,    0.07505098129761023,  0.7110748432628814,    0.23864180641973576,   0.6311090911472507,
      0.2898434465648123,    0.024685643880116404, 0.1206400134468234,    0.9642954826184025,    0.28212583854425577,
      0.33137007225108495,   0.24341818673228321,  0.2619469700798778,    0.28262355294589947,   0.7755838712533507,
      0.4053638246615504,    0.7976887925976534,   0.5522240670284019,    0.7227130132090629,    0.5864070673077637,
      0.42782888384518447,   0.28679923903462323,  0.16844780802036896,   0.17193836732536305,   0.007199948294376979,
      0.6268438803068547,    0.8592557500599268,   0.9575425033955798,    0.3502505288978284,    0.059258039358505155,
      0.7518021608110209,    0.8739573910743396,   0.7067417457943123,    0.23881851357439288,   0.5516104950394077,
      0.16949728066552805,   0.17699999941441635,  0.3259215888704792,    0.6829558794210719,    0.8768342657870796,
      0.0828341270227837,    0.6434162586445695,   0.5323110978433342,    0.1248556733436923,    0.15902590556482255,
      0.4712411793898579,    0.7894290004428436,   0.5032833161606196,    0.527059468896646,     0.9191006481472115,
      0.25305549423863427,   0.6340006741168577,   0.358184464955455,     0.25972912049066155,   0.18926991931768677,
      0.27595176819944,      0.8161194869680272,   0.1307237743057954,    0.3682368837401174,    0.10696899485835165,
      0.4381449790035217,    0.8778405603604115,   0.33026410718319044,   0.43155412970009344,   0.688941263482083,
      0.6484615948673739,    0.20103619018128005,  0.08393097766033852,   0.8913511709861782,    0.39172683394484564,
      0.8390068848742098,    0.8242315116115289,   0.016933814177084616,  0.8432770047003173,    0.5329394715412086,
      0.9027093385378767,    0.13464647139460417,  0.8011185435869719,    0.8299531042565435,    0.16599661763813744,
      0.6152441825738123,    0.25151020323522655,  0.447172104562374,     0.5702866695855857,    0.8192062209036824,
      0.23552991431295267,   0.32632467763985884,  0.038987953903722006,  0.11718840620381377,   0.7034737450184155,
      0.546752909248851,     0.7267979136936736,   0.03712586684634822,   0.03808220856446631,   0.4344229625584559,
      0.5073943443532393,    0.0876469591985547,   0.5479537630990768,    0.15022676424664938,   0.7065732472092339,
      0.5267637826119574,    0.49239129236901735,  0.8218857103459851,    0.7979465301023618,    0.029548757715175067,
      0.6487804290051798,    0.17197756477570048,  0.1792393744184949,    0.7262808230390461,    0.5266352244919847,
      0.3774751618211455,    0.14059289117160334,  0.08529920580377037,   0.28344872274215105,   0.9959953800069987,
      0.08464059391988354,   0.6670563867386871,   0.4687389304005585,    0.532305594930434,     0.28410362935440214,
      0.07129098950073931,   0.09858800624814978,  0.4866184190503341,    0.5797421505352837,    0.7275188051657857,
      0.8257101240399874,    0.2805336430088575,   0.5360449509204634,    0.48837931206904084,   0.9312020866617485,
      0.7410346712070657,    0.08381751355840361,  0.622083699685216,     0.5182872441017575,    0.20300436297731594,
      0.8408847205120992,    0.4065634267823589,   0.9992640055987563,    0.5148951028222453,    0.15248694988722633,
      0.6534611001367189,    0.031062641103680733, 0.8694831172503376,    0.24862657671809274,   0.6479564397956218,
      0.504649233907658,     0.07716366084071735,  0.6049908845448526,    0.7137870858666769,    0.7054652650387054,
      0.36350442596954213,   0.8795945111811084,   0.582926532185696,     0.6932694244947931,    0.5595855181231474,
      0.7570733169968579,    0.3926838954245869,   0.06662638382372121,   0.7354175771053119,    0.6689967299755643,
      0.1503851907294197,    0.09334662866451149,  0.6985469006194642,    0.3853073559702226,    0.7598678794046461,
      0.8430367249722724,    0.09609005474058485,  0.3327016836424206,    0.5147633020947202,    0.90130643092616,
      0.1863314734620497,    0.7182836382686819,   0.05869761827209363,   0.43215310837091325,   0.5109770631402548,
      0.8507620188714253,    0.9448034463404849,   0.8204290492967814,    0.30175616425548013,   0.6347738558965675,
      0.7115068243493056,    0.9106453434867423,   0.7081724799882917,    0.9480983751448969,    0.30683290902116644,
      0.538625415898359,     0.24508951206516771,  0.6706828695669036,    0.8841876638401157,    0.14646094171092727,
      0.0873651816168074,    0.3789152991251008,   0.7514417784728014,    0.36660529419052745,   0.9058668780554411,
      0.3905648290701539,    0.46346477300678546,  0.1784939685332635,    0.5505805956291808,    0.57458139202536,
      0.37655520125792563,   0.8714877396827005,   0.06711091117831969,   0.2982765088342778,    0.3329050905695813,
      0.4865987400975561,    0.6201284834454466,   0.46275286462889154,   0.8851839278084489,    0.9999593670233206,
      0.2758236652060908,    0.17890347032894782,  0.048086683036078326,  0.28413000356301654,   0.9536736877854535,
      0.44798896242923036,   0.29983211622633354,  0.9849763413326892,    0.45758533152883063,   0.5410627384028919,
      0.8101421663582148,    0.4745789007815937,   0.9695833469428511,    0.7406298601731718,    0.8928719524735501,
      0.07408106888379695,   0.48443913560921603,  0.9875039549398698,    0.9207282373994886,    0.916412184605058,
      0.5325664548137249,    0.5186829523993904,   0.0011137436559524039, 0.13870348711282365,   0.882637588475232,
      0.8911520456086311,    0.13836682539246214,  0.9507965084267185,    0.5052382254338335,    0.45961247912692105,
      0.979182256053379,     0.4013111553698335,   0.7788395612306059,    0.8062745586439758,    0.19584512860236825,
      0.275650733936018,     0.23472653953495393,  0.5268011060669119,    0.11615458325117867,   0.21289003081542524,
      0.41033428588999377,   0.13922941757955198,  0.7339905698509648,    0.6420365465526778,    0.5935365043786606,
      0.031448611228246826,  0.6446584269225506,   0.3168819180982111,    0.6919296394674304,    0.7611936857915317,
      0.6581989409515427,    0.7119379353798316,   0.19877568188642458,   0.29773337106911635,   0.6353172249870478,
      0.6784308970797828,    0.08779676069610531,  0.42626312256206,      0.22394679796804695,   0.9244223195097627,
      0.15901668161462468,   0.7618146378555393,   0.07687698303830115,   0.1929344802840327,    0.7553281474784295,
      0.8025581206851257,    0.14022257845130615,  0.9138712084521406,    0.8040597327540038,    0.6328239965840534,
      0.6024965111935174,    0.7348700397039633,   0.09290265494838656,   0.23580663015210346,   0.35820294378273676,
      0.7639205360566864,    0.9465492151069357,   0.4252441824179847,    0.5316291043266255,    0.8122536967408113,
      0.5789541420307059,    0.22093739858997807,  0.721478902701215,     0.6885946622229991,    0.17835185715057533,
      0.7238629983060336,    0.20125336494303825,  0.37003145722910347,   0.7429488863605441,    0.7499741271194941,
      0.849429488346799,     0.764998070770062,    0.8627353540448067,    0.2639189465037146,    0.18543192561486244,
      0.8406963006607173,    0.29867265092172757,  0.5830874946322163,    0.7266542276089016,    0.47732859671105865,
      0.5276495401100896,    0.0285892476174624,   0.10154908386840933,   0.7355153876080694,    0.5965273658488094,
      0.9873670681950693,    0.4231813740764955,   0.2367076098094284,    0.7766733432911771,    0.6429580955121145,
      0.8307521364617134,    0.6525257497726437,   0.6857387208240013,    0.6812935881218981,    0.24823806562055328,
      0.23222434233678046,   0.14734449630794566,  0.8593695744180271,    0.9521390092531038,    0.5589881068558278,
      0.048191039611119035,  0.1404201318896956,   0.40850427818021384,   0.7203622066092176,    0.8471988115463831,
      0.8860087660548518,    0.45971281262939667,  0.08887747998382489,   0.9740387490405953,    0.8585000450094692,
      0.36058899298739555,   0.4278199731132287,   0.8375237958882933,    0.01417622872482538,   0.16029654637258495,
      0.16681217791113911,   0.9318773298015346,   0.1515859497360037,    0.21766180447529104,   0.4792250665535124,
      0.24411300991628737,   0.3217581574119305,   0.8390359459774884,    0.9659682387174011,    0.40034412355266336,
      0.5255065433133791,    0.42837064152809445,  0.7654114974398095,    0.3865006028597384,    0.24734575434479678,
      0.41425008509412264,   0.4088412035484068,   0.7434536979800712,    0.9525161199007488,    0.07138799479311309,
      0.8519420240978587,    0.08747097413510685,  0.06259133820158325,   0.6102164785932812,    0.5272535740517759,
      0.3882790321273053,    0.5219871401239666,   0.08342830725989958,   0.06992376312633286,   0.45588347082683367,
      0.8507181024497145,    0.8168001145505971,   0.814592050185302,     0.8530358400139052,    0.7553391685463368,
      0.467322607265681,     0.40821268238278274,  0.15224535394276528,   0.7721886316195505,    0.3188390117882929,
      0.18861616707188456,   0.3183899178336651,   0.14272447128849497,   0.490605601502897,     0.046383765771242036,
      0.16415576287753442,   0.22888703447357206,  0.5375730996026021,    0.057127838376448525,  0.35749934689051033,
      0.2930410231839118,    0.8409144982684501,   0.07593293596409612,   0.356635418237763,     0.226719753247275,
      0.0007109181986780788, 0.7184665789785081,   0.395824938261763,     0.4867276192621923,    0.5172670089066486,
      0.5841508888388441,    0.08047869657287621,  0.9482746906157185,    0.41294535716449154,   0.8361654352683431,
      0.4321112716511004,    0.011850429412228025, 0.4725427310129483,    0.13015593957624672,   0.4613391477382468,
      0.6411806951208191,    0.5748219462376235,   0.7676968075086735,    0.4551543834911985,    0.3981321361133089,
      0.5537117150328572,    0.640188645994515,    0.8733008957299926,    0.7680564850159917,    0.591855214421642,
      0.6288218440807817,    0.5627797837213618,   0.8642380932712407,    0.6296224131150504,    0.810297385035068,
      0.9521660572032933,    0.006989866947720524, 0.15360690769811158,   0.609592365107798,     0.856111276058204,
      0.5569449989810563,    0.6358938242284586,   0.43974619938434945,   0.23369648280955435,   0.17610792852502044,
      0.5393700616427376,    0.535512670941786,    0.5912839261540107,    0.6983894048201051,    0.15323404928308648,
      0.8182668948670956,    0.29446560941893807,  0.418354823269551,     0.21870888711201486,   0.6424499336686369,
      0.3214700322107067,    0.24736247781577525,  0.7305497857337323,    0.568789544871731,     0.6533320204219322,
      0.33898139527730176,   0.16552403626291268,  0.19159501891328978,   0.5578510869508337,    0.29546640911784916,
      0.2869367181145863,    0.7294147056255083,   0.3991485374776169,    0.4445980140617459,    0.6662896463638776,
      0.8614878148940442,    0.1808774427317561,   0.4614411389376568,    0.3303364346947858,    0.8028852020786104,
      0.5169929310162137,    0.14136531759583693,  0.9831280581298246,    0.7758621954461007,    0.9883180605472691,
      0.7032276300145796,    0.31585307578954147,  0.28146832444773495,   0.9471559002035407,    0.44047203430454707,
      0.29854162639920856,   0.07733153530994863,  0.8953385322255972,    0.8718260794429866,    0.8244843036717918,
      0.9473049441286394,    0.13636726569332214,  0.9029170461356006,    0.2711524085545959,    0.14414511952710007,
      0.9499336265300194,    0.6444587977800735,   0.7418623715827386,    0.044802260433499996,  0.850581483363445,
      0.05712457779883895,   0.15282854721354788,  0.3482893221081773,    0.6247260064132429,    0.42099978778043057,
      0.7479237929881165,    0.02099064732615097,  0.013098766701113651,  0.7226056703495463,    0.04820012498442583,
      0.10248361115345117,   0.8892140389602003,   0.9313325327216908,    0.7919070208756257,    0.0708315749326881,
      0.2188073927368014,    0.8127787161494373,   0.6257366952292145,    0.6924998870427207,    0.26793105051769306,
      0.7826490483783863,    0.5966997551066409,   0.2129270109769711,    0.44769099683243785,   0.7574472416898225,
      0.26729283252732317,   0.5630783736198899,   0.8608024828157775,    0.3931840317246529,    0.022722258330870937,
      0.1056061545184902,    0.6060652796018042,   0.3352528944308385,    0.8977154563912682,    0.7221307220260405,
      0.46922215009200297,   0.4677265831501206,   0.49431288865022915,   0.42276247133689504,   0.6788161518073327,
      0.04439101827129144,   0.028811435615006542, 0.008956533117231325,  0.14719117410301985,   0.7352499716127123,
      0.9005647194328514,    0.04239801036045521,  0.32113153439789777,   0.23008784431942686,   0.25059835793851803,
      0.7821196322936473,    0.3571983300993258,   0.2624691465092742,    0.8018016489757368,    0.5248393284810376,
      0.6977900148749919,    0.33093445127674614,  0.7554471103150353,    0.30512165089613275,   0.7316809143395435,
      0.33837084272328344,   0.031181701520131222, 0.8998729244301411,    0.13963009532040604,   0.5524300751373528,
      0.998751142570437,     0.8079412199511319,   0.38764559152084754,   0.3210831483519665,    0.7304185865067885,
      0.5822602684215884,    0.6364590811085312,   0.10627778088019713,   0.5399985372878428,    0.4140922332840643,
      0.32495829469129234,   0.7880364474443821,   0.6521293980091717,    0.23933614126005887,   0.40069381935472004,
      0.3253434499214978,    0.43850426563837475,  0.3582655821803802,    0.02315611544237217,   0.7562158058764148,
      0.7040259198312322,    0.5059192662520398,   0.052574245106938755,  0.0044571360420935235, 0.19994806707117685,
      0.6839680845965146,    0.9986738127631021,   0.07122924252967722,   0.6409050009983894,    0.8555552153820654,
      0.9370992032325905,    0.7376153474252244,   0.05650174272501618,   0.9555164199341558,    0.24096140966133506,
      0.15235115309934777,   0.2227762469886192,   0.7035491425028773,    0.4883693004134255,    0.4991880671239809,
      0.2038723768682421,    0.7756032542183166,   0.006225581322849116,  0.4008868869085592,    0.20812329467775148,
      0.17556686644385078,   0.6096597423735237,   0.6191160871486041,    0.7349303921541335,    0.9192496344735487,
      0.24229302674522868,   0.9899032791595263,   0.29044779138561216,   0.8321620650117503,    0.7598221463622512,
      0.4229989353498531,    0.9387553475507483,   0.3140212188001139,    0.6511943391734281,    0.7376690823137533,
      0.16614528063403933,   0.45753024916507445,  0.6563453150496379,    0.011057777761439902,  0.0018264730571969645,
      0.3140058709073794,    0.8479357203115255,   0.9718814368259422,    0.2938044793936031,    0.389604645965164,
      0.7259980798553759,    0.384597064894432,    0.6461406690633517,    0.17143060225012974,   0.7905787674108862,
      0.700764812184617,     0.9178067635156595,   0.007883547902275412,  0.04345877753973626,   0.40662108491778937,
      0.32503174588972183,   0.05007085167672787,  0.9581958519270192,    0.20437076813207167,   0.2397322863247101,
      0.2432309640469006,    0.945083897778037,    0.715659408560469,     0.24955287567344286,   0.4424646154063001,
      0.42947559846701466,   0.15496718950982546,  0.8613665468468363,    0.6173709310699306,    0.34240192063131025,
      0.17697172987534104,   0.05400248287734222,  0.47400410893135847,   0.5657413124334275,    0.6886788284227651,
      0.693192811671234,     0.5531430026891606,   0.766990407259576,     0.8518985685483231,    0.5389165861980743,
      0.9984378083937185,    0.8151195733132465,   0.7295039076200354,    0.0922729891266788,    0.8668318130738214,
      0.23372381782403595,   0.03956728658695974,  0.9606270879918739,    0.8167629519087327,    0.6627590908369925,
      0.3128149140030476,    0.6317394199057031,   0.12021250922401605,   0.42604564092211705,   0.3977230376064276,
      0.022079790505487362,  0.28149855317178163,  0.03265235541107758,   0.7517419899840844,    0.3364005732928873,
      0.7329527122940036,    0.43759767242690906,  0.3172137189567925,    0.2707815810278883,    0.6642248201697422,
      0.3972911147544086,    0.009127503808928017, 0.1234374452587974,    0.39970292448775213,   0.11989802753965029,
      0.9927165644356675,    0.8609568773974031,   0.28473276918917545,   0.5837263814586879,    0.2741346897790268,
      0.5647425538488864,    0.969909805392653,    0.7261702056098153,    0.5430436390733616,    0.08333922871976862,
      0.5609888136600801,    0.014806506476614079, 0.9455759599914065,    0.3193070470406175,    0.08542679684744281,
      0.6744677936417323,    0.27782578504968625,  0.29358418856919855,   0.9950513588111255,    0.09523381762884475,
      0.7696317754383216,    0.6698100854232568,   0.43625543466202976,   0.2330898194698613,    0.4127476057822641,
      0.9294766285644805,    0.05680528782969185,  0.6537538588698784,    0.17396071383121814,   0.9595723514929978,
      0.42975991044177986,   0.5431447973683532,   0.8833668707212631,    0.26133302914884515,   0.37848317176894164,
      0.46852397650558253,   0.20735781040531553,  0.8524713092661131,    0.44086749842642614,   0.9183713393663233,
      0.9450411621274358,    0.697302770534409,    0.9135605184069232,    0.09015468169209084,   0.704151745426799,
      0.5400455593098272,    0.5480655211682695,   0.30738071301825654,   0.15067120555532854,   0.925682378381145,
      0.8160834394485424,    0.8645970999084115,   0.43923002522405574,   0.3760052855173096,    0.08902326927063253,
      0.09948678314542847,   0.3578210615036086,   0.8485940282988038,    0.2516468752579376,    0.7365499301475807,
      0.5612758649671108,    0.7859804827616864,   0.8851363067086282,    0.8935474690220618,    0.5336384648157917,
      0.23839322063516444,   0.23213589762876796,  0.005758486459847889,  0.36868262474116764,   0.264207113494464,
      0.36157643004033746,   0.9637257888559727,   0.5737186764359195,    0.5315516381845716,    0.5101088363620886,
      0.039248651321625805,  0.9681240024592983,   0.08677429466572284,   0.9518099421221371,    0.7952823450404229,
      0.05713730664487837,   0.17614720504232317,  0.14661930610537355,   0.7433132788379365,    0.3574322869140888,
      0.2341799637707056,    0.8349985525202629,   0.8160746720387089,    0.6407640183325787,    0.6197726260454984,
      0.41237945120152153,   0.1830987925080485,   0.7553599629295343,    0.05454691882123808,   0.5562940920005512,
      0.5102400141204675,    0.9541297229195699,   0.5577971859903864,    0.3371623491173492,    0.9597353973741677,
      0.9125053638178813,    0.5331026395371243,   0.7058339751156828,    0.28253557117321937,   0.7269649285767406,
      0.12353532557783586,   0.4491118104036773,   0.6637148382841026,    0.6351120142249237,    0.864473727452456,
      0.8265584180895602,    0.6156722515329398,   0.8643555219638754,    0.6571916479877694,
  };

  TransArgs args{
      reinterpret_cast<uint8_t *>(data_4d), FORMAT_FRACTAL_Z, FORMAT_NHWC, {4, 1, 16, 16}, {16, 2, 2, 16}, DT_FLOAT};
  TransResult result;

  FormatTransferFracZNhwc transfer;
  EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS);
  EXPECT_EQ(result.length, sizeof(data));
  for (int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
    EXPECT_EQ((reinterpret_cast<float *>(result.data.get()))[i], data[i]);
  }
}

TEST_F(UtestFormatTransferFraczNhwc, fracz_to_nhwc_fp32_success_gt_cube) {
  float data_4d[8 * 2 * 16 * 16] = {
      0.9818316040500025,
      0.6304740371328553,
      0.3403190259672165,
      0.1545772791147686,
      0.636859736696714,
      0.7286646469411707,
      0.6881973306039132,
      0.11522718733202364,
      0.05221067208366703,
      0.760070751319305,
      0.7630787390114239,
      0.03062661180995363,
      0.6996367230214888,
      0.05874377568360356,
      0.7989654896241913,
      0.48340672056664313,
      0.9824687054977398,
      0.9118200012456436,
      0.5325827377037693,
      0.13215275466376963,
      0.16258783427877654,
      0.8733241462879588,
      0.9811689540387104,
      0.16717227735564522,
      0.17175025957595413,
      0.26751940129597196,
      0.6902723346114396,
      0.9141926645323374,
      0.1602148239484672,
      0.590826374279885,
      0.12879622297601634,
      0.9993413116954417,
      0.108757112003669,
      0.1058705156043852,
      0.29841868434742747,
      0.29680370546430235,
      0.7166628643533716,
      0.7961560236596105,
      0.2998001849925561,
      0.17227883677244848,
      0.273205026266526,
      0.4057715298841855,
      0.9241372689749366,
      0.4818191702106074,
      0.8407488865265121,
      0.37467834871018846,
      0.08393661785563533,
      0.9287360118914758,
      0.9323262118603665,
      0.0959850628867761,
      0.07841190876627901,
      0.7575281447707486,
      0.6451504082047301,
      0.2867531294639032,
      0.6038261174674847,
      0.5722864102604774,
      0.5980542102140242,
      0.29143691325023924,
      0.3323126425519707,
      0.6213156440241487,
      0.2783744506447783,
      0.8192692866948531,
      0.9580914367293034,
      0.8180085498115592,
      0.46737984143039313,
      0.21761303972473267,
      0.010092223694828983,
      0.133924872196312,
      0.6457939399463842,
      0.7108065587126572,
      0.6213477205246348,
      0.03780712693181687,
      0.052964796784310986,
      0.7720495422151494,
      0.07597908210473048,
      0.3880721492592797,
      0.8673754495725557,
      0.2159619821305203,
      0.9349796659144918,
      0.19280128505408822,
      0.19225222099905237,
      0.6381200674681307,
      0.09517206563329228,
      0.7401210217185733,
      0.9213966447997659,
      0.8282252903940375,
      0.25575682793740195,
      0.09419161503451245,
      0.7133067524485386,
      0.30622040856962174,
      0.04567030385976745,
      0.4421966327959601,
      0.9470399466953359,
      0.1863959618388854,
      0.603892794005211,
      0.7305230388181004,
      0.28364151338783206,
      0.7685411345675934,
      0.8988615642504377,
      0.7248529774876415,
      0.8955713245004737,
      0.9694464156380791,
      0.13627973385112224,
      0.0262054823780018,
      0.9598488199046755,
      0.6637745866350796,
      0.567021314483643,
      0.8028105889988362,
      0.5449983501324986,
      0.7405568508319487,
      0.7479203765092981,
      0.6091595342627724,
      0.3571584723082011,
      0.6634376909205661,
      0.7823687380994333,
      0.46769811417519425,
      0.43313252298354554,
      0.4512165332058773,
      0.7409639493996218,
      0.773542103389995,
      0.03251757301743474,
      0.2918512326156285,
      0.2707389025126231,
      0.48862277656898045,
      0.0677707878489644,
      0.5319713656658794,
      0.19055872328014922,
      0.42372710919648093,
      0.5410233673552419,
      0.7053385617098781,
      0.5796221225781045,
      0.6774744169203547,
      0.38184777780992407,
      0.5921849312009162,
      0.4139673487900193,
      0.6324891962264935,
      0.23998117926531592,
      0.3006459023062501,
      0.7543836662968866,
      0.21903128794922366,
      0.8847078454339562,
      0.43658173987503657,
      0.13725114471518118,
      0.5082197711407339,
      0.18832064432940687,
      0.08574080793259364,
      0.30059358691237237,
      0.6482106495699304,
      0.8511603041679399,
      0.2701156230003453,
      0.21298871203478398,
      0.08203197080945912,
      0.6725944240256472,
      0.3066569123534626,
      0.2662259874220829,
      0.16779728161704843,
      0.7158644073214633,
      0.6878815896858301,
      0.9934704148141994,
      0.40929994195329833,
      0.9879146301551541,
      0.8134508106867051,
      0.4772264929878759,
      0.5239150673556234,
      0.04973375923455958,
      0.9408063913333713,
      0.8933576927435202,
      0.7690497885609424,
      0.3432688849226637,
      0.09841971497506807,
      0.6489987050683524,
      0.4612619245600613,
      0.9668831791357312,
      0.6773541509970112,
      0.8113556563575658,
      0.5103191595379972,
      0.692501163915668,
      0.872476678417899,
      0.39847669533309527,
      0.2550816582357872,
      0.44785761524405,
      0.6631992982892411,
      0.07909667197674031,
      0.15595306847956636,
      0.7549753608310522,
      0.7497451144627425,
      0.961356053996849,
      0.047012242220749845,
      0.39968661191290844,
      0.7900745768809934,
      0.18988750301939106,
      0.34309148527453104,
      0.8666802227613912,
      0.33819954591027035,
      0.6754386381771887,
      0.012056309491297434,
      0.6529806784933322,
      0.9651442384174174,
      0.9978184657413758,
      0.6258752595314446,
      0.4974480025947464,
      0.28768692957840036,
      0.5851676600752466,
      0.38541216263965494,
      0.5412711123583736,
      0.7940464609305427,
      0.008865031997954298,
      0.05848479024922548,
      0.9396557362265029,
      0.4326393542047332,
      0.2488609657348656,
      0.7562763464489093,
      0.9983141149044218,
      0.008402913032401704,
      0.19571855359179036,
      0.690386550914582,
      0.7536429455538223,
      0.9378744182203695,
      0.7586425829635426,
      0.1445178013804469,
      0.9109541843179556,
      0.07821616551324684,
      0.05078095176454778,
      0.9130796647001046,
      0.20480686637597612,
      0.8200671332173322,
      0.4353078372661333,
      0.9539464470659443,
      0.8303326350536121,
      0.6278771584995406,
      0.2509169090532466,
      0.1774990588847868,
      0.4984180010157796,
      0.37490941253308996,
      0.747904697670194,
      0.4689694228884409,
      0.07865978524122308,
      0.018278256806917637,
      0.7339557318674227,
      0.9194551313394231,
      0.48861250541718937,
      0.01814006325736084,
      0.7541958032692393,
      0.8774612716989119,
      0.3760072307293194,
      0.2342391882453575,
      0.5507128966242177,
      0.8814107840171872,
      0.7629915021375545,
      0.022596785422104193,
      0.4676586074696423,
      0.6323496539184577,
      0.10709853732458496,
      0.24458540292747133,
      0.7432044950079842,
      0.991407564153164,
      0.6266082092973347,
      0.04229595441634182,
      0.8184353596321909,
      0.10225103323158635,
      0.11394336686699535,
      0.4022127256961855,
      0.30838155456109306,
      0.3195787933473151,
      0.11242740506794102,
      0.06655005190369112,
      0.5103072329299937,
      0.22668773651030127,
      0.32922441298388727,
      0.8140348723745937,
      0.5638190653380799,
      0.26541973372425653,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6639543926405075,
      0.590430754187306,
      0.13166255110692238,
      0.46762259840886866,
      0.8254471928133637,
      0.4192809120720761,
      0.9109983519609524,
      0.06282341072241782,
      0.11304156042728886,
      0.5823811143881991,
      0.8401405236826993,
      0.39537016399274805,
      0.3393604217038657,
      0.981346463187018,
      0.8145676445740513,
      0.9617260330265892,
      0.8974954048898902,
      0.9194970967140944,
      0.9244598046892946,
      0.5278043489398178,
      0.6099197828719526,
      0.6616471969341827,
      0.6838181481733964,
      0.3321388894085553,
      0.32772025405797767,
      0.8045236337225692,
      0.543424952115358,
      0.31439754345644666,
      0.20390144864709325,
      0.7287843878803184,
      0.9530947743998013,
      0.9986403638627129,
      0.3975263188390229,
      0.5781879687545874,
      0.8724409861023287,
      0.8566257438266888,
      0.14606536893076372,
      0.12865091525620642,
      0.8838077200484497,
      0.7193688017246426,
      0.5554742650350404,
      0.1590835864032687,
      0.14658353856064854,
      0.8378474528967791,
      0.48599324242561204,
      0.4618113619505574,
      0.42866889296674937,
      0.5822891945174828,
      0.9030309982011011,
      0.41714977847695556,
      0.46228541811630763,
      0.2749445339474653,
      0.25981719721224195,
      0.8216787813868978,
      0.4538230925345249,
      0.7282865762095903,
      0.8788563382405642,
      0.8826153372351091,
      0.008215547008057156,
      0.7021704582311347,
      0.142877593970687,
      0.03730299658952074,
      0.5109381307125636,
      0.496533373979947,
      0.6221167728428014,
      0.594797090684722,
      0.9484422878814833,
      0.5779176961086859,
      0.05054664123568153,
      0.6904408145042924,
      0.9456781975122573,
      0.07234907191568096,
      0.31454539272595317,
      0.039782261918874906,
      0.9587127521414383,
      0.8805585025554179,
      0.9859544914622989,
      0.6275317338277425,
      0.14352580582038044,
      0.7695326504943156,
      0.41043924117549035,
      0.3199344511919423,
      0.17009843234582034,
      0.19333893045555228,
      0.4065598982414558,
      0.4783366067549203,
      0.2925065077781679,
      0.46612867625915266,
      0.2260401750143446,
      0.9769887894299829,
      0.626959110785719,
      0.9005591753667794,
      0.22730676915421288,
      0.43752553937624405,
      0.20832599816771735,
      0.0648434614140343,
      0.5533790070863268,
      0.08314085235301405,
      0.8425708019179065,
      0.15917383752943826,
      0.6527601974253487,
      0.30126252545266263,
      0.6463253615283967,
      0.4485504420576313,
      0.6669832516919934,
      0.6390350894633332,
      0.5841276848813355,
      0.3633156947810412,
      0.20053851382498278,
      0.2991176134182495,
      0.2237519088309342,
      0.6924468706663672,
      0.6267863686588406,
      0.6957686899861832,
      0.8481678412966801,
      0.6679132796626048,
      0.2520678664501832,
      0.6859580348999734,
      0.41653832488428466,
      0.3443130260330426,
      0.9265385049178334,
      0.4632590871458663,
      0.2792541905414425,
      0.297175390928865,
      0.9649706249008346,
      0.8868549044180415,
      0.27859114362929416,
      0.7113192182809037,
      0.9797397982051781,
      0.5567150341480799,
      0.7202351101992689,
      0.16413702022000565,
      0.336467018972884,
      0.0377230903593081,
      0.8602687151091007,
      0.11839554304283328,
      0.14208471520735977,
      0.43607071414863874,
      0.8741600257317956,
      0.6640170355939985,
      0.0909679192917131,
      0.9106544964694222,
      0.804698027266483,
      0.35002717921135407,
      0.151688664815809,
      0.7393767419885556,
      0.48217967745270196,
      0.9602943716631533,
      0.30319852768975375,
      0.1330627046343439,
      0.6710020756991474,
      0.27078039927991027,
      0.11186194386988224,
      0.5457171365684865,
      0.7880448237433672,
      0.013805055471389882,
      0.6180892645154643,
      0.48759905827516603,
      0.8233479375602223,
      0.4264784017101182,
      0.9633894232982487,
      0.7448212055191065,
      0.5452953261409613,
      0.4856970915644032,
      0.8693281473365151,
      0.6373330823065603,
      0.5771587194750025,
      0.8691299641815123,
      0.0815851410708418,
      0.6806300549508425,
      0.5075760571421807,
      0.601124222598236,
      0.07050306902810866,
      0.36920524642079033,
      0.18818005490550915,
      0.5583892243115647,
      0.5927420217262831,
      0.7580186574311277,
      0.5033605618537017,
      0.9425017651769168,
      0.48862010484707064,
      0.9853716648830263,
      0.39984394946359525,
      0.5558506900537014,
      0.5908610536703583,
      0.22602671513614803,
      0.8798987778429802,
      0.9531473683222749,
      0.7410953157434534,
      0.30111561488120153,
      0.4403622314059401,
      0.052456464089102095,
      0.01209641118408944,
      0.46704246287932405,
      0.4750820624217653,
      0.10164673751729414,
      0.9796758207356858,
      0.8610487700070613,
      0.6211171296662068,
      0.8731238761599872,
      0.37578834957139673,
      0.1120201496751766,
      0.011314071997954644,
      0.2572189570511383,
      0.879811392407261,
      0.10362272859591204,
      0.01645233098389376,
      0.9500294012864102,
      0.9690251328314643,
      0.42575080842172963,
      0.7001480708771485,
      0.4041297773374436,
      0.4185210345469337,
      0.7190995465953123,
      0.7640566649798914,
      0.23242098306402514,
      0.3542816499880481,
      0.5507254523321877,
      0.3029570242047027,
      0.3038459304238752,
      0.9598648212640765,
      0.7204511737388988,
      0.8790782739473424,
      0.7794923303105117,
      0.8815381229146946,
      0.03744741097255122,
      0.9047169962685846,
      0.4610613790126912,
      0.2475915213540839,
      0.4298710416601963,
      0.8221398481995089,
      0.23343189008359377,
      0.5350763782441681,
      0.14739879873747308,
      0.33280129854717244,
      0.23821919516506462,
      0.7167817307593071,
      0.8773007050805388,
      0.48070282049083113,
      0.08899633176897048,
      0.14443919067113453,
      0.9763728131494807,
      0.13169707338891068,
      0.2574020118799679,
      0.9117198409079358,
      0.4813044045568353,
      0.7148710776112692,
      0.10816472148122425,
      0.4872820160105873,
      0.7843715998368327,
      0.9792048963235088,
      0.5032302898011388,
      0.9133488145295496,
      0.8343572569411505,
      0.45894548309522043,
      0.8041104427062074,
      0.5871631865450887,
      0.056334307939404415,
      0.7231806850118402,
      0.6744439230965042,
      0.8458065219298543,
      0.009223176587899173,
      0.6934220235290146,
      0.7552659426337391,
      0.40417163368066655,
      0.18495513003494457,
      0.716067507969818,
      0.14155481130771042,
      0.029361076807311592,
      0.8830993452371644,
      0.6613103229791982,
      0.9398338818781078,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3578659411897861,
      0.7301301934786895,
      0.8618464466584491,
      0.18816515849292015,
      0.9107401874129222,
      0.03292249492058863,
      0.8173098249178635,
      0.2326748580551784,
      0.8712189622758891,
      0.052152358807047494,
      0.5500602809399827,
      0.29888382736441554,
      0.7171636160760438,
      0.61107113112707,
      0.8742559685716594,
      0.27079826979584654,
      0.034930190616391354,
      0.7646888920837598,
      0.33294464574985105,
      0.18964393968657645,
      0.8359357998538534,
      0.603777432373904,
      0.8080737216440349,
      0.43253091727556037,
      0.29704589713859186,
      0.35101583873151454,
      0.27797579020562,
      0.4409871040404285,
      0.03183653010616194,
      0.6888718475212194,
      0.743930296258262,
      0.1383195679389676,
      0.7653124697875597,
      0.6197416698501532,
      0.03370111396538,
      0.277730833007543,
      0.47173387429680513,
      0.004031925171442463,
      0.4216810529719548,
      0.1527542910995907,
      0.755050985872739,
      0.5103916874099794,
      0.24663350472458012,
      0.9944239408861326,
      0.8532667918305049,
      0.571258224550583,
      0.8203424472901112,
      0.7752687501935466,
      0.3379267797413644,
      0.04363591901403252,
      0.021159698090064682,
      0.9844201045382279,
      0.9320998367516875,
      0.7508176117887979,
      0.6279835385302436,
      0.8296132817079003,
      0.7742499180798184,
      0.22327265194322599,
      0.05523148177019932,
      0.015431424053453768,
      0.9810406410163607,
      0.6360185797616702,
      0.318578721332871,
      0.8545232136203632,
      0.23240215777624518,
      0.5821386011719336,
      0.40705038971314067,
      0.9726331053853133,
      0.5877629214351668,
      0.737951863797599,
      0.13209112961192793,
      0.32596609082453,
      0.9051706320834314,
      0.006592902179112681,
      0.44539065743524575,
      0.21040963856054318,
      0.02648671883280662,
      0.8307275617617943,
      0.4998882468907887,
      0.553040303946554,
      0.5297816530911937,
      0.5843239411260238,
      0.1571513016873196,
      0.4588380934037194,
      0.8580445067796844,
      0.08760914807929077,
      0.3167980809508252,
      0.5688868537877791,
      0.7432713240307058,
      0.47849574835183317,
      0.08569476671747134,
      0.0028373026780509347,
      0.36146132556611577,
      0.11732007318482318,
      0.8826440135398512,
      0.8057998064675778,
      0.04722817815152447,
      0.5163195461666986,
      0.8923939769755282,
      0.05625559077233866,
      0.061665786518363186,
      0.662644780876765,
      0.6339151490480687,
      0.23437975062774363,
      0.12890375862760606,
      0.3501592943353464,
      0.09947716801883921,
      0.9783908021362502,
      0.5039620019339041,
      0.7894302782128263,
      0.40318009245339925,
      0.010992512436047153,
      0.7885896931523694,
      0.09972075576249273,
      0.327050109765748,
      0.040566933728248045,
      0.5192171211123873,
      0.5010930644256814,
      0.1751335903258584,
      0.973049431223127,
      0.04605996955300973,
      0.5346739560986009,
      0.8356986203333525,
      0.8197705199993206,
      0.00016846934847547512,
      0.9767516366117579,
      0.7373887650278352,
      0.25343735960629343,
      0.32665192959159395,
      0.9515843270568628,
      0.7912931593367771,
      0.3390543201499241,
      0.39116094675420365,
      0.48473912485681336,
      0.7748044486400519,
      0.9504668800747522,
      0.17379382917448194,
      0.9058195197373183,
      0.2269566175662039,
      0.038537709312595037,
      0.26170965377152067,
      0.39139592915908183,
      0.21106987419176348,
      0.2688423270567659,
      0.0588646031637704,
      0.8142663494405596,
      0.7230712928151145,
      0.10388770611234022,
      0.6320570126609345,
      0.3854592292304997,
      0.8401593200228608,
      0.19857080876585775,
      0.4632224663542698,
      0.8338896779165693,
      0.07498742940886116,
      0.019157468796003774,
      0.1973426137959765,
      0.9481227475490336,
      0.18022422840604635,
      0.8193635052157996,
      0.6971962981473214,
      0.03280146452993471,
      0.6100845348121183,
      0.2564881425807104,
      0.40952730901052836,
      0.11198840547195466,
      0.6384039317824369,
      0.40293878780785075,
      0.022692351439830727,
      0.8875572687105943,
      0.06480422446351664,
      0.10051348811549643,
      0.1980882930823188,
      0.9179898183709072,
      0.6861308896442132,
      0.6956857450336589,
      0.31107695018579007,
      0.7677549648467343,
      0.6201418408382342,
      0.804275349391573,
      0.2870986397529448,
      0.1397119476044384,
      0.8556387210623139,
      0.6062812206466079,
      0.6575142947882678,
      0.45585821923189085,
      0.4099371374021249,
      0.7082884101648349,
      0.8291749729575852,
      0.9185967769978759,
      0.04060621570729972,
      0.4474316536950259,
      0.8363505443285942,
      0.8575757647091935,
      0.039799459941253335,
      0.36286406449207986,
      0.5131647448366778,
      0.39819043236603746,
      0.7618607865355099,
      0.22711968862867105,
      0.9394712456140883,
      0.027435600732236387,
      0.7758712942733171,
      0.2025711015279088,
      0.9991247917543385,
      0.9938131541840006,
      0.186905251806328,
      0.6306921520671528,
      0.9934696708319142,
      0.4155138570203807,
      0.33151958596483977,
      0.7351239628799405,
      0.20830903644833842,
      0.7740550628440345,
      0.4191234862718004,
      0.23674572501250302,
      0.059571405085674156,
      0.9129267438467386,
      0.06451592284712904,
      0.6857709392141015,
      0.8380269534549667,
      0.39885910326895746,
      0.2834031729279012,
      0.2382256471610743,
      0.9638471775191081,
      0.7215840179080331,
      0.36423940072103955,
      0.17430531770484514,
      0.9415074521796919,
      0.2738258731873858,
      0.9306468185245629,
      0.6656678169751403,
      0.1155683928384511,
      0.8747709248985905,
      0.12635835804712037,
      0.5759875379497646,
      0.5731929978928748,
      0.03741903689544501,
      0.19725909198310998,
      0.7735858565736194,
      0.4790973691825182,
      0.0981833133220551,
      0.8764985001957379,
      0.5258092509418005,
      0.8342042669276518,
      0.8790350110712204,
      0.7094946960609122,
      0.7708450113645778,
      0.4180654412461543,
      0.4242979420279134,
      0.24139470932602636,
      0.2209321570893309,
      0.7846941996259452,
      0.12945719412306944,
      0.7602339455424194,
      0.10743040252161462,
      0.46685068003629737,
      0.046369043986771774,
      0.23308706601773554,
      0.4844512179420487,
      0.9643822582174879,
      0.6006453251508257,
      0.6936888180218606,
      0.3013953093096562,
      0.7354859248567551,
      0.8349944098141118,
      0.4048627428035879,
      0.44505698895658985,
      0.7751604897094069,
      0.8744909179894252,
      0.947828891904564,
      0.8640222948104718,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6314201140353499,
      0.11044529796167624,
      0.5234602021756846,
      0.8383531146832072,
      0.35499006367650765,
      0.9442108337417638,
      0.8956398237978505,
      0.1882592063763192,
      0.37890051336945096,
      0.2616367877576542,
      0.42834342236173995,
      0.963048643409656,
      0.9217911303998747,
      0.3863817294878098,
      0.0974751151813743,
      0.8599500573727576,
      0.057089287186821935,
      0.5533755728797164,
      0.6005915913361521,
      0.1620083752339584,
      0.6061041103116162,
      0.3995882134501906,
      0.7085082598407784,
      0.08407809216757356,
      0.9084207349081772,
      0.7272457718657432,
      0.32992683980137916,
      0.4946824285274082,
      0.615073271111235,
      0.4193961465372614,
      0.30553456868372697,
      0.05060126762779704,
      0.291593602521547,
      0.92010890659423,
      0.983625492452828,
      0.48639081135981677,
      0.4765739226583956,
      0.10661041022380258,
      0.5214502864845213,
      0.8599870683300007,
      0.5179732137433295,
      0.8809917505983484,
      0.722106976281213,
      0.48823452875607354,
      0.3503839647122472,
      0.9865830045574908,
      0.5426630898906415,
      0.5217709034718941,
      0.10414112024944422,
      0.7758532076224506,
      0.3073683279926598,
      0.8740808571085373,
      0.31398731169122107,
      0.9731775740247134,
      0.006681240523999987,
      0.15988007000514737,
      0.12796151451926918,
      0.34990462264973865,
      0.0656152325665823,
      0.573229266270487,
      0.8187327005316167,
      0.7370367403897583,
      0.5653206456450454,
      0.6242381891062653,
      0.6005553470527086,
      0.5780289963610858,
      0.4615664520082169,
      0.33336403885310373,
      0.3607367809090497,
      0.41916265564486266,
      0.01606174796202109,
      0.14162979911924312,
      0.4134088930503992,
      0.8487134257579578,
      0.5428387502949792,
      0.7715775547811061,
      0.3987807271022865,
      0.9327040075466025,
      0.5991429329697456,
      0.42591643248294897,
      0.9341257420123151,
      0.00901387215143401,
      0.31965995666124947,
      0.30354580893146743,
      0.29702838396393805,
      0.8783416396086332,
      0.661370050417091,
      0.5972415473147473,
      0.7785999094421769,
      0.22056824973746136,
      0.5673911270103246,
      0.43802545724601716,
      0.7305663462744951,
      0.16885785839419054,
      0.5057125448994015,
      0.6601524988598084,
      0.41780992611018475,
      0.3827436867828057,
      0.4994412662997859,
      0.6760343095970682,
      0.804379353505974,
      0.6968983017423745,
      0.7087690507974629,
      0.9060334223047234,
      0.7408399172400371,
      0.4399334354759946,
      0.0505122443751177,
      0.6419455093215115,
      0.6284706946091785,
      0.03490785589787804,
      0.23143346520326058,
      0.918425982705948,
      0.13419172631284015,
      0.19703920828417498,
      0.8385184444257783,
      0.5863278446649178,
      0.8162272321723847,
      0.9352789460968992,
      0.8647561254544748,
      0.15975188650299932,
      0.17836973320343386,
      0.6864848216734166,
      0.36415105850464413,
      0.3426658491754645,
      0.08329749299302491,
      0.42193590764837385,
      0.6642021794485784,
      0.6636584135623489,
      0.6053567411529699,
      0.6988705097367177,
      0.3729424883568403,
      0.04411243675556986,
      0.534604760793021,
      0.6085219738551051,
      0.12447165936004256,
      0.05883726779432985,
      0.24847343117316678,
      0.5063340116556715,
      0.3976127704496062,
      0.08152081595341609,
      0.3506522585285301,
      0.1683344260481151,
      0.48691479882706157,
      0.8353082899370665,
      0.14637104867208328,
      0.2129098116028093,
      0.5796866670289799,
      0.39100590803988866,
      0.32139056156796886,
      0.15058673720696558,
      0.010737680262784766,
      0.004595895220052548,
      0.5243334524071466,
      0.3062990700506023,
      0.8989948145015754,
      0.3995636846032241,
      0.4560874030151093,
      0.948023137115712,
      0.540281310007275,
      0.26457559429892186,
      0.6515191420301568,
      0.9554532124850424,
      0.20822584693009594,
      0.21886259526121254,
      0.8463453916651477,
      0.7415404364419516,
      0.5419971984385825,
      0.5497563263808113,
      0.980394542822379,
      0.15307532804101953,
      0.572368260863743,
      0.48863254508712584,
      0.6979314145830208,
      0.43581241800260095,
      0.6989017345810631,
      0.8187807739671614,
      0.2575823090229311,
      0.8240801799547735,
      0.1448669779417252,
      0.8116170735906293,
      0.9082959459536531,
      0.8862781397082458,
      0.7324826297013995,
      0.6259636012578446,
      0.028853519416508266,
      0.6228437907861963,
      0.02409626691061728,
      0.9203609494394416,
      0.8461273177832925,
      0.2736512366046855,
      0.04020369061681861,
      0.902228304152258,
      0.550880345014923,
      0.07148117151736633,
      0.41054299237597647,
      0.10848671426422485,
      0.9728118525566118,
      0.20990798653999276,
      0.9308342861844455,
      0.4978127378528848,
      0.7351482579424665,
      0.5623836482085756,
      0.143782791890815,
      0.5898839079534395,
      0.2546773800832157,
      0.666653682817035,
      0.7467649896168816,
      0.7339634345720852,
      0.707682901066885,
      0.9101318378861685,
      0.5123191129010624,
      0.9439951816262205,
      0.5463959087566002,
      0.05760611428924023,
      0.676503376165408,
      0.44429048072068333,
      0.5230209296642828,
      0.3224367091169168,
      0.6913680319012937,
      0.17110739904678152,
      0.16779286710665142,
      0.6335681699796741,
      0.07931757368130377,
      0.46888858792493004,
      0.18197527553087145,
      0.002638591858257655,
      0.691716324882675,
      0.044337163682884206,
      0.6293554666845848,
      0.40764392827851403,
      0.2538655700672533,
      0.8281469647313634,
      0.023926045054366463,
      0.8167534085038402,
      0.43320133354594026,
      0.24862060630736682,
      0.09125749468359245,
      0.8118122437010404,
      0.9973271765376198,
      0.9865525895778507,
      0.47291321372136974,
      0.8635521722706079,
      0.4701334745256115,
      0.1506952535704139,
      0.9018427816330945,
      0.6748520059749242,
      0.6573750823451866,
      0.8618860620086874,
      0.08827502135749443,
      0.6729164433989506,
      0.21618869286155384,
      0.4287518670302243,
      0.2407327438728406,
      0.6338004043821022,
      0.8515817109182252,
      0.9659962777150152,
      0.6549008736011241,
      0.8479504542038493,
      0.006679071347445054,
      0.2724677376754999,
      0.9915443051333377,
      0.21071715217089027,
      0.8684246639753141,
      0.7856846182004006,
      0.6859853232823806,
      0.4789831650688282,
      0.8185051822940307,
      0.5789517433188925,
      0.6919294885862914,
      0.921789377332735,
      0.41376092831273026,
      0.29579140546489957,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.06536693360779877,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8189538792252146,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8485698722432129,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.42689303422429525,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7474879973990272,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9950215619461602,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.41411358428231926,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.21626088206538852,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.22487940449338928,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.4682545943541082,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9510104387444676,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.18639355175119265,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8815486106206981,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9534802944405797,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5689890773146097,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3329371174770699,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7461012639404849,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7556533452821178,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6957123659099351,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.08242896820190027,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.23616744795045597,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.13692726551997658,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.16712455310677277,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8035400908448518,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1837892082294046,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.05376976135766964,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3992656098634447,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9176895603923744,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.19440695649597994,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8475060356712824,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.18787115939366794,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9920266776266308,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8961208287376816,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.41160144347284433,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.17742916588766944,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.07851007465436122,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.06660419203737089,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.07000294703215704,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9664967803907726,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.16668958705182269,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.060520301199066595,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7159738475986986,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7139909208243974,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5477377714401691,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8949482680224852,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6066615918823247,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3799019937820075,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.006052425806343575,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7784261014648269,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8334328323308305,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3595682016631978,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9593119247449344,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.11585279449665897,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5430944490786588,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.4432788242430207,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.44626736830361025,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8072981979896457,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9707561358089939,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.694866090191261,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2577772577688977,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6567808670786782,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.10632659645304032,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1875989205574723,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.40947541132428245,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.05797277783754817,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8163056554998648,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.4315493010082393,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.534265983707278,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
  };
  float data[17 * 2 * 2 * 17] = {
      0.9818316040500025,    0.6304740371328553,   0.3403190259672165,     0.1545772791147686,   0.636859736696714,
      0.7286646469411707,    0.6881973306039132,   0.11522718733202364,    0.05221067208366703,  0.760070751319305,
      0.7630787390114239,    0.03062661180995363,  0.6996367230214888,     0.05874377568360356,  0.7989654896241913,
      0.48340672056664313,   0.06536693360779877,  0.6639543926405075,     0.590430754187306,    0.13166255110692238,
      0.46762259840886866,   0.8254471928133637,   0.4192809120720761,     0.9109983519609524,   0.06282341072241782,
      0.11304156042728886,   0.5823811143881991,   0.8401405236826993,     0.39537016399274805,  0.3393604217038657,
      0.981346463187018,     0.8145676445740513,   0.9617260330265892,     0.7556533452821178,   0.3578659411897861,
      0.7301301934786895,    0.8618464466584491,   0.18816515849292015,    0.9107401874129222,   0.03292249492058863,
      0.8173098249178635,    0.2326748580551784,   0.8712189622758891,     0.052152358807047494, 0.5500602809399827,
      0.29888382736441554,   0.7171636160760438,   0.61107113112707,       0.8742559685716594,   0.27079826979584654,
      0.17742916588766944,   0.6314201140353499,   0.11044529796167624,    0.5234602021756846,   0.8383531146832072,
      0.35499006367650765,   0.9442108337417638,   0.8956398237978505,     0.1882592063763192,   0.37890051336945096,
      0.2616367877576542,    0.42834342236173995,  0.963048643409656,      0.9217911303998747,   0.3863817294878098,
      0.0974751151813743,    0.8599500573727576,   0.9593119247449344,     0.9824687054977398,   0.9118200012456436,
      0.5325827377037693,    0.13215275466376963,  0.16258783427877654,    0.8733241462879588,   0.9811689540387104,
      0.16717227735564522,   0.17175025957595413,  0.26751940129597196,    0.6902723346114396,   0.9141926645323374,
      0.1602148239484672,    0.590826374279885,    0.12879622297601634,    0.9993413116954417,   0.8189538792252146,
      0.8974954048898902,    0.9194970967140944,   0.9244598046892946,     0.5278043489398178,   0.6099197828719526,
      0.6616471969341827,    0.6838181481733964,   0.3321388894085553,     0.32772025405797767,  0.8045236337225692,
      0.543424952115358,     0.31439754345644666,  0.20390144864709325,    0.7287843878803184,   0.9530947743998013,
      0.9986403638627129,    0.6957123659099351,   0.034930190616391354,   0.7646888920837598,   0.33294464574985105,
      0.18964393968657645,   0.8359357998538534,   0.603777432373904,      0.8080737216440349,   0.43253091727556037,
      0.29704589713859186,   0.35101583873151454,  0.27797579020562,       0.4409871040404285,   0.03183653010616194,
      0.6888718475212194,    0.743930296258262,    0.1383195679389676,     0.07851007465436122,  0.057089287186821935,
      0.5533755728797164,    0.6005915913361521,   0.1620083752339584,     0.6061041103116162,   0.3995882134501906,
      0.7085082598407784,    0.08407809216757356,  0.9084207349081772,     0.7272457718657432,   0.32992683980137916,
      0.4946824285274082,    0.615073271111235,    0.4193961465372614,     0.30553456868372697,  0.05060126762779704,
      0.11585279449665897,   0.108757112003669,    0.1058705156043852,     0.29841868434742747,  0.29680370546430235,
      0.7166628643533716,    0.7961560236596105,   0.2998001849925561,     0.17227883677244848,  0.273205026266526,
      0.4057715298841855,    0.9241372689749366,   0.4818191702106074,     0.8407488865265121,   0.37467834871018846,
      0.08393661785563533,   0.9287360118914758,   0.8485698722432129,     0.3975263188390229,   0.5781879687545874,
      0.8724409861023287,    0.8566257438266888,   0.14606536893076372,    0.12865091525620642,  0.8838077200484497,
      0.7193688017246426,    0.5554742650350404,   0.1590835864032687,     0.14658353856064854,  0.8378474528967791,
      0.48599324242561204,   0.4618113619505574,   0.42866889296674937,    0.5822891945174828,   0.08242896820190027,
      0.7653124697875597,    0.6197416698501532,   0.03370111396538,       0.277730833007543,    0.47173387429680513,
      0.004031925171442463,  0.4216810529719548,   0.1527542910995907,     0.755050985872739,    0.5103916874099794,
      0.24663350472458012,   0.9944239408861326,   0.8532667918305049,     0.571258224550583,    0.8203424472901112,
      0.7752687501935466,    0.06660419203737089,  0.291593602521547,      0.92010890659423,     0.983625492452828,
      0.48639081135981677,   0.4765739226583956,   0.10661041022380258,    0.5214502864845213,   0.8599870683300007,
      0.5179732137433295,    0.8809917505983484,   0.722106976281213,      0.48823452875607354,  0.3503839647122472,
      0.9865830045574908,    0.5426630898906415,   0.5217709034718941,     0.5430944490786588,   0.9323262118603665,
      0.0959850628867761,    0.07841190876627901,  0.7575281447707486,     0.6451504082047301,   0.2867531294639032,
      0.6038261174674847,    0.5722864102604774,   0.5980542102140242,     0.29143691325023924,  0.3323126425519707,
      0.6213156440241487,    0.2783744506447783,   0.8192692866948531,     0.9580914367293034,   0.8180085498115592,
      0.42689303422429525,   0.9030309982011011,   0.41714977847695556,    0.46228541811630763,  0.2749445339474653,
      0.25981719721224195,   0.8216787813868978,   0.4538230925345249,     0.7282865762095903,   0.8788563382405642,
      0.8826153372351091,    0.008215547008057156, 0.7021704582311347,     0.142877593970687,    0.03730299658952074,
      0.5109381307125636,    0.496533373979947,    0.23616744795045597,    0.3379267797413644,   0.04363591901403252,
      0.021159698090064682,  0.9844201045382279,   0.9320998367516875,     0.7508176117887979,   0.6279835385302436,
      0.8296132817079003,    0.7742499180798184,   0.22327265194322599,    0.05523148177019932,  0.015431424053453768,
      0.9810406410163607,    0.6360185797616702,   0.318578721332871,      0.8545232136203632,   0.07000294703215704,
      0.10414112024944422,   0.7758532076224506,   0.3073683279926598,     0.8740808571085373,   0.31398731169122107,
      0.9731775740247134,    0.006681240523999987, 0.15988007000514737,    0.12796151451926918,  0.34990462264973865,
      0.0656152325665823,    0.573229266270487,    0.8187327005316167,     0.7370367403897583,   0.5653206456450454,
      0.6242381891062653,    0.4432788242430207,   0.46737984143039313,    0.21761303972473267,  0.010092223694828983,
      0.133924872196312,     0.6457939399463842,   0.7108065587126572,     0.6213477205246348,   0.03780712693181687,
      0.052964796784310986,  0.7720495422151494,   0.07597908210473048,    0.3880721492592797,   0.8673754495725557,
      0.2159619821305203,    0.9349796659144918,   0.19280128505408822,    0.7474879973990272,   0.6221167728428014,
      0.594797090684722,     0.9484422878814833,   0.5779176961086859,     0.05054664123568153,  0.6904408145042924,
      0.9456781975122573,    0.07234907191568096,  0.31454539272595317,    0.039782261918874906, 0.9587127521414383,
      0.8805585025554179,    0.9859544914622989,   0.6275317338277425,     0.14352580582038044,  0.7695326504943156,
      0.13692726551997658,   0.23240215777624518,  0.5821386011719336,     0.40705038971314067,  0.9726331053853133,
      0.5877629214351668,    0.737951863797599,    0.13209112961192793,    0.32596609082453,     0.9051706320834314,
      0.006592902179112681,  0.44539065743524575,  0.21040963856054318,    0.02648671883280662,  0.8307275617617943,
      0.4998882468907887,    0.553040303946554,    0.9664967803907726,     0.6005553470527086,   0.5780289963610858,
      0.4615664520082169,    0.33336403885310373,  0.3607367809090497,     0.41916265564486266,  0.01606174796202109,
      0.14162979911924312,   0.4134088930503992,   0.8487134257579578,     0.5428387502949792,   0.7715775547811061,
      0.3987807271022865,    0.9327040075466025,   0.5991429329697456,     0.42591643248294897,  0.44626736830361025,
      0.19225222099905237,   0.6381200674681307,   0.09517206563329228,    0.7401210217185733,   0.9213966447997659,
      0.8282252903940375,    0.25575682793740195,  0.09419161503451245,    0.7133067524485386,   0.30622040856962174,
      0.04567030385976745,   0.4421966327959601,   0.9470399466953359,     0.1863959618388854,   0.603892794005211,
      0.7305230388181004,    0.9950215619461602,   0.41043924117549035,    0.3199344511919423,   0.17009843234582034,
      0.19333893045555228,   0.4065598982414558,   0.4783366067549203,     0.2925065077781679,   0.46612867625915266,
      0.2260401750143446,    0.9769887894299829,   0.626959110785719,      0.9005591753667794,   0.22730676915421288,
      0.43752553937624405,   0.20832599816771735,  0.0648434614140343,     0.16712455310677277,  0.5297816530911937,
      0.5843239411260238,    0.1571513016873196,   0.4588380934037194,     0.8580445067796844,   0.08760914807929077,
      0.3167980809508252,    0.5688868537877791,   0.7432713240307058,     0.47849574835183317,  0.08569476671747134,
      0.0028373026780509347, 0.36146132556611577,  0.11732007318482318,    0.8826440135398512,   0.8057998064675778,
      0.16668958705182269,   0.9341257420123151,   0.00901387215143401,    0.31965995666124947,  0.30354580893146743,
      0.29702838396393805,   0.8783416396086332,   0.661370050417091,      0.5972415473147473,   0.7785999094421769,
      0.22056824973746136,   0.5673911270103246,   0.43802545724601716,    0.7305663462744951,   0.16885785839419054,
      0.5057125448994015,    0.6601524988598084,   0.8072981979896457,     0.28364151338783206,  0.7685411345675934,
      0.8988615642504377,    0.7248529774876415,   0.8955713245004737,     0.9694464156380791,   0.13627973385112224,
      0.0262054823780018,    0.9598488199046755,   0.6637745866350796,     0.567021314483643,    0.8028105889988362,
      0.5449983501324986,    0.7405568508319487,   0.7479203765092981,     0.6091595342627724,   0.41411358428231926,
      0.5533790070863268,    0.08314085235301405,  0.8425708019179065,     0.15917383752943826,  0.6527601974253487,
      0.30126252545266263,   0.6463253615283967,   0.4485504420576313,     0.6669832516919934,   0.6390350894633332,
      0.5841276848813355,    0.3633156947810412,   0.20053851382498278,    0.2991176134182495,   0.2237519088309342,
      0.6924468706663672,    0.8035400908448518,   0.04722817815152447,    0.5163195461666986,   0.8923939769755282,
      0.05625559077233866,   0.061665786518363186, 0.662644780876765,      0.6339151490480687,   0.23437975062774363,
      0.12890375862760606,   0.3501592943353464,   0.09947716801883921,    0.9783908021362502,   0.5039620019339041,
      0.7894302782128263,    0.40318009245339925,  0.010992512436047153,   0.060520301199066595, 0.41780992611018475,
      0.3827436867828057,    0.4994412662997859,   0.6760343095970682,     0.804379353505974,    0.6968983017423745,
      0.7087690507974629,    0.9060334223047234,   0.7408399172400371,     0.4399334354759946,   0.0505122443751177,
      0.6419455093215115,    0.6284706946091785,   0.03490785589787804,    0.23143346520326058,  0.918425982705948,
      0.9707561358089939,    0.3571584723082011,   0.6634376909205661,     0.7823687380994333,   0.46769811417519425,
      0.43313252298354554,   0.4512165332058773,   0.7409639493996218,     0.773542103389995,    0.03251757301743474,
      0.2918512326156285,    0.2707389025126231,   0.48862277656898045,    0.0677707878489644,   0.5319713656658794,
      0.19055872328014922,   0.42372710919648093,  0.21626088206538852,    0.6267863686588406,   0.6957686899861832,
      0.8481678412966801,    0.6679132796626048,   0.2520678664501832,     0.6859580348999734,   0.41653832488428466,
      0.3443130260330426,    0.9265385049178334,   0.4632590871458663,     0.2792541905414425,   0.297175390928865,
      0.9649706249008346,    0.8868549044180415,   0.27859114362929416,    0.7113192182809037,   0.1837892082294046,
      0.7885896931523694,    0.09972075576249273,  0.327050109765748,      0.040566933728248045, 0.5192171211123873,
      0.5010930644256814,    0.1751335903258584,   0.973049431223127,      0.04605996955300973,  0.5346739560986009,
      0.8356986203333525,    0.8197705199993206,   0.00016846934847547512, 0.9767516366117579,   0.7373887650278352,
      0.25343735960629343,   0.7159738475986986,   0.13419172631284015,    0.19703920828417498,  0.8385184444257783,
      0.5863278446649178,    0.8162272321723847,   0.9352789460968992,     0.8647561254544748,   0.15975188650299932,
      0.17836973320343386,   0.6864848216734166,   0.36415105850464413,    0.3426658491754645,   0.08329749299302491,
      0.42193590764837385,   0.6642021794485784,   0.6636584135623489,     0.694866090191261,    0.5410233673552419,
      0.7053385617098781,    0.5796221225781045,   0.6774744169203547,     0.38184777780992407,  0.5921849312009162,
      0.4139673487900193,    0.6324891962264935,   0.23998117926531592,    0.3006459023062501,   0.7543836662968866,
      0.21903128794922366,   0.8847078454339562,   0.43658173987503657,    0.13725114471518118,  0.5082197711407339,
      0.22487940449338928,   0.9797397982051781,   0.5567150341480799,     0.7202351101992689,   0.16413702022000565,
      0.336467018972884,     0.0377230903593081,   0.8602687151091007,     0.11839554304283328,  0.14208471520735977,
      0.43607071414863874,   0.8741600257317956,   0.6640170355939985,     0.0909679192917131,   0.9106544964694222,
      0.804698027266483,     0.35002717921135407,  0.05376976135766964,    0.32665192959159395,  0.9515843270568628,
      0.7912931593367771,    0.3390543201499241,   0.39116094675420365,    0.48473912485681336,  0.7748044486400519,
      0.9504668800747522,    0.17379382917448194,  0.9058195197373183,     0.2269566175662039,   0.038537709312595037,
      0.26170965377152067,   0.39139592915908183,  0.21106987419176348,    0.2688423270567659,   0.7139909208243974,
      0.6053567411529699,    0.6988705097367177,   0.3729424883568403,     0.04411243675556986,  0.534604760793021,
      0.6085219738551051,    0.12447165936004256,  0.05883726779432985,    0.24847343117316678,  0.5063340116556715,
      0.3976127704496062,    0.08152081595341609,  0.3506522585285301,     0.1683344260481151,   0.48691479882706157,
      0.8353082899370665,    0.2577772577688977,   0.18832064432940687,    0.08574080793259364,  0.30059358691237237,
      0.6482106495699304,    0.8511603041679399,   0.2701156230003453,     0.21298871203478398,  0.08203197080945912,
      0.6725944240256472,    0.3066569123534626,   0.2662259874220829,     0.16779728161704843,  0.7158644073214633,
      0.6878815896858301,    0.9934704148141994,   0.40929994195329833,    0.4682545943541082,   0.151688664815809,
      0.7393767419885556,    0.48217967745270196,  0.9602943716631533,     0.30319852768975375,  0.1330627046343439,
      0.6710020756991474,    0.27078039927991027,  0.11186194386988224,    0.5457171365684865,   0.7880448237433672,
      0.013805055471389882,  0.6180892645154643,   0.48759905827516603,    0.8233479375602223,   0.4264784017101182,
      0.3992656098634447,    0.0588646031637704,   0.8142663494405596,     0.7230712928151145,   0.10388770611234022,
      0.6320570126609345,    0.3854592292304997,   0.8401593200228608,     0.19857080876585775,  0.4632224663542698,
      0.8338896779165693,    0.07498742940886116,  0.019157468796003774,   0.1973426137959765,   0.9481227475490336,
      0.18022422840604635,   0.8193635052157996,   0.5477377714401691,     0.14637104867208328,  0.2129098116028093,
      0.5796866670289799,    0.39100590803988866,  0.32139056156796886,    0.15058673720696558,  0.010737680262784766,
      0.004595895220052548,  0.5243334524071466,   0.3062990700506023,     0.8989948145015754,   0.3995636846032241,
      0.4560874030151093,    0.948023137115712,    0.540281310007275,      0.26457559429892186,  0.6567808670786782,
      0.9879146301551541,    0.8134508106867051,   0.4772264929878759,     0.5239150673556234,   0.04973375923455958,
      0.9408063913333713,    0.8933576927435202,   0.7690497885609424,     0.3432688849226637,   0.09841971497506807,
      0.6489987050683524,    0.4612619245600613,   0.9668831791357312,     0.6773541509970112,   0.8113556563575658,
      0.5103191595379972,    0.9510104387444676,   0.9633894232982487,     0.7448212055191065,   0.5452953261409613,
      0.4856970915644032,    0.8693281473365151,   0.6373330823065603,     0.5771587194750025,   0.8691299641815123,
      0.0815851410708418,    0.6806300549508425,   0.5075760571421807,     0.601124222598236,    0.07050306902810866,
      0.36920524642079033,   0.18818005490550915,  0.5583892243115647,     0.9176895603923744,   0.6971962981473214,
      0.03280146452993471,   0.6100845348121183,   0.2564881425807104,     0.40952730901052836,  0.11198840547195466,
      0.6384039317824369,    0.40293878780785075,  0.022692351439830727,   0.8875572687105943,   0.06480422446351664,
      0.10051348811549643,   0.1980882930823188,   0.9179898183709072,     0.6861308896442132,   0.6956857450336589,
      0.8949482680224852,    0.6515191420301568,   0.9554532124850424,     0.20822584693009594,  0.21886259526121254,
      0.8463453916651477,    0.7415404364419516,   0.5419971984385825,     0.5497563263808113,   0.980394542822379,
      0.15307532804101953,   0.572368260863743,    0.48863254508712584,    0.6979314145830208,   0.43581241800260095,
      0.6989017345810631,    0.8187807739671614,   0.10632659645304032,    0.692501163915668,    0.872476678417899,
      0.39847669533309527,   0.2550816582357872,   0.44785761524405,       0.6631992982892411,   0.07909667197674031,
      0.15595306847956636,   0.7549753608310522,   0.7497451144627425,     0.961356053996849,    0.047012242220749845,
      0.39968661191290844,   0.7900745768809934,   0.18988750301939106,    0.34309148527453104,  0.18639355175119265,
      0.5927420217262831,    0.7580186574311277,   0.5033605618537017,     0.9425017651769168,   0.48862010484707064,
      0.9853716648830263,    0.39984394946359525,  0.5558506900537014,     0.5908610536703583,   0.22602671513614803,
      0.8798987778429802,    0.9531473683222749,   0.7410953157434534,     0.30111561488120153,  0.4403622314059401,
      0.052456464089102095,  0.19440695649597994,  0.31107695018579007,    0.7677549648467343,   0.6201418408382342,
      0.804275349391573,     0.2870986397529448,   0.1397119476044384,     0.8556387210623139,   0.6062812206466079,
      0.6575142947882678,    0.45585821923189085,  0.4099371374021249,     0.7082884101648349,   0.8291749729575852,
      0.9185967769978759,    0.04060621570729972,  0.4474316536950259,     0.6066615918823247,   0.2575823090229311,
      0.8240801799547735,    0.1448669779417252,   0.8116170735906293,     0.9082959459536531,   0.8862781397082458,
      0.7324826297013995,    0.6259636012578446,   0.028853519416508266,   0.6228437907861963,   0.02409626691061728,
      0.9203609494394416,    0.8461273177832925,   0.2736512366046855,     0.04020369061681861,  0.902228304152258,
      0.1875989205574723,    0.8666802227613912,   0.33819954591027035,    0.6754386381771887,   0.012056309491297434,
      0.6529806784933322,    0.9651442384174174,   0.9978184657413758,     0.6258752595314446,   0.4974480025947464,
      0.28768692957840036,   0.5851676600752466,   0.38541216263965494,    0.5412711123583736,   0.7940464609305427,
      0.008865031997954298,  0.05848479024922548,  0.8815486106206981,     0.01209641118408944,  0.46704246287932405,
      0.4750820624217653,    0.10164673751729414,  0.9796758207356858,     0.8610487700070613,   0.6211171296662068,
      0.8731238761599872,    0.37578834957139673,  0.1120201496751766,     0.011314071997954644, 0.2572189570511383,
      0.879811392407261,     0.10362272859591204,  0.01645233098389376,    0.9500294012864102,   0.8475060356712824,
      0.8363505443285942,    0.8575757647091935,   0.039799459941253335,   0.36286406449207986,  0.5131647448366778,
      0.39819043236603746,   0.7618607865355099,   0.22711968862867105,    0.9394712456140883,   0.027435600732236387,
      0.7758712942733171,    0.2025711015279088,   0.9991247917543385,     0.9938131541840006,   0.186905251806328,
      0.6306921520671528,    0.3799019937820075,   0.550880345014923,      0.07148117151736633,  0.41054299237597647,
      0.10848671426422485,   0.9728118525566118,   0.20990798653999276,    0.9308342861844455,   0.4978127378528848,
      0.7351482579424665,    0.5623836482085756,   0.143782791890815,      0.5898839079534395,   0.2546773800832157,
      0.666653682817035,     0.7467649896168816,   0.7339634345720852,     0.40947541132428245,  0.9396557362265029,
      0.4326393542047332,    0.2488609657348656,   0.7562763464489093,     0.9983141149044218,   0.008402913032401704,
      0.19571855359179036,   0.690386550914582,    0.7536429455538223,     0.9378744182203695,   0.7586425829635426,
      0.1445178013804469,    0.9109541843179556,   0.07821616551324684,    0.05078095176454778,  0.9130796647001046,
      0.9534802944405797,    0.9690251328314643,   0.42575080842172963,    0.7001480708771485,   0.4041297773374436,
      0.4185210345469337,    0.7190995465953123,   0.7640566649798914,     0.23242098306402514,  0.3542816499880481,
      0.5507254523321877,    0.3029570242047027,   0.3038459304238752,     0.9598648212640765,   0.7204511737388988,
      0.8790782739473424,    0.7794923303105117,   0.18787115939366794,    0.9934696708319142,   0.4155138570203807,
      0.33151958596483977,   0.7351239628799405,   0.20830903644833842,    0.7740550628440345,   0.4191234862718004,
      0.23674572501250302,   0.059571405085674156, 0.9129267438467386,     0.06451592284712904,  0.6857709392141015,
      0.8380269534549667,    0.39885910326895746,  0.2834031729279012,     0.2382256471610743,   0.006052425806343575,
      0.707682901066885,     0.9101318378861685,   0.5123191129010624,     0.9439951816262205,   0.5463959087566002,
      0.05760611428924023,   0.676503376165408,    0.44429048072068333,    0.5230209296642828,   0.3224367091169168,
      0.6913680319012937,    0.17110739904678152,  0.16779286710665142,    0.6335681699796741,   0.07931757368130377,
      0.46888858792493004,   0.05797277783754817,  0.20480686637597612,    0.8200671332173322,   0.4353078372661333,
      0.9539464470659443,    0.8303326350536121,   0.6278771584995406,     0.2509169090532466,   0.1774990588847868,
      0.4984180010157796,    0.37490941253308996,  0.747904697670194,      0.4689694228884409,   0.07865978524122308,
      0.018278256806917637,  0.7339557318674227,   0.9194551313394231,     0.5689890773146097,   0.8815381229146946,
      0.03744741097255122,   0.9047169962685846,   0.4610613790126912,     0.2475915213540839,   0.4298710416601963,
      0.8221398481995089,    0.23343189008359377,  0.5350763782441681,     0.14739879873747308,  0.33280129854717244,
      0.23821919516506462,   0.7167817307593071,   0.8773007050805388,     0.48070282049083113,  0.08899633176897048,
      0.9920266776266308,    0.9638471775191081,   0.7215840179080331,     0.36423940072103955,  0.17430531770484514,
      0.9415074521796919,    0.2738258731873858,   0.9306468185245629,     0.6656678169751403,   0.1155683928384511,
      0.8747709248985905,    0.12635835804712037,  0.5759875379497646,     0.5731929978928748,   0.03741903689544501,
      0.19725909198310998,   0.7735858565736194,   0.7784261014648269,     0.18197527553087145,  0.002638591858257655,
      0.691716324882675,     0.044337163682884206, 0.6293554666845848,     0.40764392827851403,  0.2538655700672533,
      0.8281469647313634,    0.023926045054366463, 0.8167534085038402,     0.43320133354594026,  0.24862060630736682,
      0.09125749468359245,   0.8118122437010404,   0.9973271765376198,     0.9865525895778507,   0.8163056554998648,
      0.48861250541718937,   0.01814006325736084,  0.7541958032692393,     0.8774612716989119,   0.3760072307293194,
      0.2342391882453575,    0.5507128966242177,   0.8814107840171872,     0.7629915021375545,   0.022596785422104193,
      0.4676586074696423,    0.6323496539184577,   0.10709853732458496,    0.24458540292747133,  0.7432044950079842,
      0.991407564153164,     0.3329371174770699,   0.14443919067113453,    0.9763728131494807,   0.13169707338891068,
      0.2574020118799679,    0.9117198409079358,   0.4813044045568353,     0.7148710776112692,   0.10816472148122425,
      0.4872820160105873,    0.7843715998368327,   0.9792048963235088,     0.5032302898011388,   0.9133488145295496,
      0.8343572569411505,    0.45894548309522043,  0.8041104427062074,     0.8961208287376816,   0.4790973691825182,
      0.0981833133220551,    0.8764985001957379,   0.5258092509418005,     0.8342042669276518,   0.8790350110712204,
      0.7094946960609122,    0.7708450113645778,   0.4180654412461543,     0.4242979420279134,   0.24139470932602636,
      0.2209321570893309,    0.7846941996259452,   0.12945719412306944,    0.7602339455424194,   0.10743040252161462,
      0.8334328323308305,    0.47291321372136974,  0.8635521722706079,     0.4701334745256115,   0.1506952535704139,
      0.9018427816330945,    0.6748520059749242,   0.6573750823451866,     0.8618860620086874,   0.08827502135749443,
      0.6729164433989506,    0.21618869286155384,  0.4287518670302243,     0.2407327438728406,   0.6338004043821022,
      0.8515817109182252,    0.9659962777150152,   0.4315493010082393,     0.6266082092973347,   0.04229595441634182,
      0.8184353596321909,    0.10225103323158635,  0.11394336686699535,    0.4022127256961855,   0.30838155456109306,
      0.3195787933473151,    0.11242740506794102,  0.06655005190369112,    0.5103072329299937,   0.22668773651030127,
      0.32922441298388727,   0.8140348723745937,   0.5638190653380799,     0.26541973372425653,  0.7461012639404849,
      0.5871631865450887,    0.056334307939404415, 0.7231806850118402,     0.6744439230965042,   0.8458065219298543,
      0.009223176587899173,  0.6934220235290146,   0.7552659426337391,     0.40417163368066655,  0.18495513003494457,
      0.716067507969818,     0.14155481130771042,  0.029361076807311592,   0.8830993452371644,   0.6613103229791982,
      0.9398338818781078,    0.41160144347284433,  0.46685068003629737,    0.046369043986771774, 0.23308706601773554,
      0.4844512179420487,    0.9643822582174879,   0.6006453251508257,     0.6936888180218606,   0.3013953093096562,
      0.7354859248567551,    0.8349944098141118,   0.4048627428035879,     0.44505698895658985,  0.7751604897094069,
      0.8744909179894252,    0.947828891904564,    0.8640222948104718,     0.3595682016631978,   0.6549008736011241,
      0.8479504542038493,    0.006679071347445054, 0.2724677376754999,     0.9915443051333377,   0.21071715217089027,
      0.8684246639753141,    0.7856846182004006,   0.6859853232823806,     0.4789831650688282,   0.8185051822940307,
      0.5789517433188925,    0.6919294885862914,   0.921789377332735,      0.41376092831273026,  0.29579140546489957,
      0.534265983707278,
  };

  TransArgs args{
      reinterpret_cast<uint8_t *>(data_4d), FORMAT_FRACTAL_Z, FORMAT_NHWC, {8, 2, 16, 16}, {17, 2, 2, 17}, DT_FLOAT};
  TransResult result;

  FormatTransferFracZNhwc transfer;
  EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS);
  EXPECT_EQ(result.length, sizeof(data));
  for (int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) {
    EXPECT_EQ((reinterpret_cast<float *>(result.data.get()))[i], data[i]);
  }
}
}  // namespace formats
}  // namespace ge